c# - 是否每次都必须始终 Select()... new{Anon}... AsEnumerable...Select(new EntityType{}) ?

标签 c# linq entity-framework-4

我一直遇到一种模式,我想从实体集合 (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/

相关文章:

c# - 如何为.NET Core 3.0 Worker Service设置事件日志

c# - ASP.NET 文本框不包含 'value' 的定义

C# 复选框

entity-framework-4 - session 中的 ASP.Net MVC 存储用户实体

c# - 将列表对象绑定(bind)到 javascript 数组

c# - 在 C# 中交换字典类型参数的复杂性

asp.net - 使用中继器,获取 FK 并显示该表中的列

c# - 无法为 LINQ 选择的数据分配新值

c# - where 子句中的动态列名。 Entity Framework

asp.net - 使用EF 4.1部署数据库更改