C# 实体框架-未映射的实体。可能的

C# 实体框架-未映射的实体。可能的,c#,entity-framework,C#,Entity Framework,是否可以创建未映射到数据库中表的实体 我创建了一个具有5个属性(姓名、电话、电子邮件、日期、评论)的实体(A)。我的数据库中没有名为A的表 我使用linq查询了模型中的其他表,并将结果转换为类型(a)的列表 IList results=new IList(); 结果=(从B中的m开始) 其中m.Id

是否可以创建未映射到数据库中表的实体

我创建了一个具有5个属性(姓名、电话、电子邮件、日期、评论)的实体(A)。我的数据库中没有名为A的表

我使用linq查询了模型中的其他表,并将结果转换为类型(a)的列表

IList results=new IList();
结果=(从B中的m开始)
其中m.Id<10
选择new{m.name,m.email,m.date,m.phone,m.comment}).ToList();
返回视图(结果)

我这样做是为了防止将匿名类型传递给我的视图。

首先,因为您正在为变量
结果
分配一些内容,所以不需要创建新列表。以下工作将起作用:

IList<A> results;       // No value yet.
然而,你的假设在这里是错误的。您说:我将结果转换为类型
a
的列表,以防止将匿名类型传递给我的视图,但您对匿名类型的看法是错误的

以下内容不会创建匿名类型。它将创建一个非常不一致的
IEnumerable
IQueryable

但是,以下操作将创建匿名类型:

var results = from m in B
              select new {
                  Name = m.name,
                  Email = m.email,
                  Date = m.date,
                  Phone = m.phone,
                  Comment = m.comment
              };

我想你可以用automapper来做这个。未映射的实体,有什么好处?为什么不创建一个类呢?一个类?今天是星期五,我的大脑快要崩溃了。但是为什么一个未映射的实体不能工作呢?有人告诉我,我可以创建一个复杂类型,而不是创建一个实体。我的观点是,如果它没有映射到任何东西,为什么需要实体框架呢?看起来你可以用这5个属性创建一个类。现在是星期一,也许会有意义!我认为您可能需要更新和重新组织您的问题,并提供更多关于您试图实现的目标的详细信息。对于映射的其他5个表,我需要EF。
results = (from m in B
          where m.Id < 10
          select new A(m.name, m.email, m.date, m.phone, m.comment))
          .ToList();

return View(results)
var results = from m in B
              select new A();
var results = from m in B
              select new {
                  Name = m.name,
                  Email = m.email,
                  Date = m.date,
                  Phone = m.phone,
                  Comment = m.comment
              };