实体框架 - 未映射的实体。可能?
是否有可能创建一个未映射到数据库中的表的实体?实体框架 - 未映射的实体。可能?
我创建了一个包含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)
我这样做是从传递一个匿名类型我的看法,以防止查询在我的模型中的其它表。
首先,由于您将变量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
类型的列表,以防止将匿名类型传递给我的视图,但您对匿名类型的想法不正确。
以下将不是创建一个匿名类型。这将创建一个非常unanonymous 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
};
我想你可以使用automapper来做到这一点。 – 2013-03-15 15:34:27
我的代码是错误的。我输入了那个内存 – 2013-03-15 17:33:32
未映射的实体,有什么好处?那么为什么不创建一个类呢? – 2013-03-15 15:35:25
上课吗?这是星期五我的大脑即将关闭。但为什么没有未映射的实体工作? – 2013-03-15 17:39:46
有人告诉我,不是创建一个实体,我可以创建一个复杂类型 – 2013-03-15 19:09:36