我一直遇到一种模式,我想从实体集合 (EF4) 中选择行并使用数据在不同的实体集合中创建新行。
我发现执行此操作的唯一方法是执行以下步骤:
var newEntities = (from e in myentities
where e.x == y
select new {
Prop1 = e.Prop1,
Prop2 = e.Prop2+e.Prop3,
Prop3 = DateTime.Now,
Prop4 = "Hardcodedstring"}
)
.AsEnumerable()
.Select(n=>new OtherEntity{
Prop1 = n.Prop1,
Prop2 = n.Prop2,
Prop3 = n.Prop3,
Prop4 = n.Prop4}
);
//insert into database and save
如果我尝试在选择中创建一个新的 OtherEntity,则会收到 EF 异常。
这是唯一的方法吗?使整个事情变得非常麻烦并且似乎完全浪费了击键?
最佳答案
我建议使用 Automapper 从您的实体映射到您的域对象,而不是从 linq 查询中进行映射。
关于c# - 是否每次都必须始终 Select()... new{Anon}... AsEnumerable...Select(new EntityType{}) ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7566555/