查询实体的子集并使用 EF 6 将其转换为另一个模型
Query a subset of an entity and cast it into another model using EF 6
我希望能够将一个实体的子集查询到另一个模型中。例如,假设我想从多个模型和 return 一个联系人模型中提取联系信息。这只是一个例子:
public class Store
{
public int ID { get; set; }
public string Name { get; set; }
public string Phone { get; set; }
...
}
public class Person
{
public int ID { get; set; }
public string Name { get; set; }
public string Phone { get; set; }
...
}
// Not an entity
public class Contact
{
public int ID { get; set; }
public string Name { get; set; }
public string Phone { get; set; }
public string Type {get; set; }
}
我只想从 Store 和 Person 查询 ID、Name 和 Phone。将结果联合在一起并将其强类型化为 Contact 以传递给我的视图。类型和 ID 一起将作为对原始实体的参考,因此我可以进行一些 CRUD 操作。
EF 6 可以吗?做这样的事情有更好的方法吗?
您应该可以这样做:
dbContext.Stores.Select(s => new Contact
{
ID = s.ID,
Name = s.Name,
Phone = s.Phone,
Type = "Store",
})
.Union(dbContext.Persons.Select(p => new Contact
{
ID = p.ID,
Name = p.Name,
Phone = p.Phone,
Type = "Person",
}));
(对您的 DbContext
和 DbSet
名称进行一些假设)。
见Union in entity framework
我希望能够将一个实体的子集查询到另一个模型中。例如,假设我想从多个模型和 return 一个联系人模型中提取联系信息。这只是一个例子:
public class Store
{
public int ID { get; set; }
public string Name { get; set; }
public string Phone { get; set; }
...
}
public class Person
{
public int ID { get; set; }
public string Name { get; set; }
public string Phone { get; set; }
...
}
// Not an entity
public class Contact
{
public int ID { get; set; }
public string Name { get; set; }
public string Phone { get; set; }
public string Type {get; set; }
}
我只想从 Store 和 Person 查询 ID、Name 和 Phone。将结果联合在一起并将其强类型化为 Contact 以传递给我的视图。类型和 ID 一起将作为对原始实体的参考,因此我可以进行一些 CRUD 操作。
EF 6 可以吗?做这样的事情有更好的方法吗?
您应该可以这样做:
dbContext.Stores.Select(s => new Contact
{
ID = s.ID,
Name = s.Name,
Phone = s.Phone,
Type = "Store",
})
.Union(dbContext.Persons.Select(p => new Contact
{
ID = p.ID,
Name = p.Name,
Phone = p.Phone,
Type = "Person",
}));
(对您的 DbContext
和 DbSet
名称进行一些假设)。
见Union in entity framework