Pet*_*ter 8 c# asp.net linq-to-sql
就像标题所说,我有以下例外:
描述:事件代码:3005事件消息:发生了未处理的异常.异常信息:异常类型:NotSupportedException异常消息:不允许在查询中显式构造实体类型"Company.Project.Core.Domain.Friend".
我正在使用LINQ to SQL并在我的datacontext中使用以下代码:
var friends2 = (
from f in dc.Friends
where f.MyFriendsAccountId == accountId
where f.AccountId != accountId
select new
{
f.FriendId,
AccountId = f.MyFriendsAccountId,
MyFriendsAccountId = f.AccountId,
f.CreateDate,
f.Timestamp
}).Distinct();
result.AddRange(
from o in friends2
select new Friend()
{
FriendId = o.FriendId,
AccountId = o.AccountId,
CreateDate = o.CreateDate,
MyFriendsAccountId = o.MyFriendsAccountId,
Timestamp = o.Timestamp
});
Run Code Online (Sandbox Code Playgroud)
最后的代码块抛出错误,我很确定这个声明是罪魁祸首:
.Select( o => **new Friend**
Run Code Online (Sandbox Code Playgroud)
我应该如何重新编写代码以避免此错误?
Ste*_*ven 11
无法使用LINQ查询创建属于数据上下文的实体.这是C#团队经过深思熟虑的设计决策.因为实体是在Select
语句中新建的(手动),这意味着它们不会被它们跟踪DataContext
,这可能会使开发人员感到困惑.另一方面,当DataContext自动插入提交这些新建实体时,这也会让人感到困惑.剩下的唯一选择是与开发人员沟通,这不是一个好主意,这就是你所看到的.
归档时间: |
|
查看次数: |
7341 次 |
最近记录: |