3

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

我创建了一个具有 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)

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

4

1 回答 1

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>or 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
              };
于 2013-03-15T15:32:29.970 回答