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

时间:2013-03-15 15:28:32

标签: c# entity-framework

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

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

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

IList<A> results = new IList<A>();
results = (from m in B
           where m.Id < 10
           select new { m.name, m.email, m.date, m.phone, m.comment }).ToList();
return View(results)

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

1 个答案:

答案 0 :(得分:1)

首先,由于您要为变量results分配内容,因此无需创建新列表。以下内容适用:

IList<A> results;       // No value yet.

然后你可以像其他方式一样实例化A

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)

但是,你的假设在这里是错误的。你说:我将结果转换为类型A的列表,以防止将匿名类型传递给我的视图,但你对匿名类型的想法是不正确的。

以下创建匿名类型。它会创建一个非常匿名的IEnumerable<A>IQueryable<A>

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
              };