DbLinq问题(关键字New或MemberInit抛出异常)

时间:2009-05-12 23:28:39

标签: c# asp.net linq dblinq

我正在将一个巨大的Web应用程序从SQL Server迁移到MySql。该应用程序使用Linq,所以我使用DBLinq。目前大多数事情都正常工作,除了在几页上,我得到一个奇怪的错误。一切都始于此:

Property 'Int32 ForumID' is not defined for type 'DbLinq.Data.Linq.Table`1[CPost]'

我显然在CPost课程中有一个ForumID,所以这不是问题。我尝试将查询复制到一个单独的文件并开始删除它的一部分,以查看导致错误的原因。过了一会儿,我发现了这一行:

var q = from u in db.Users select new {ab = u};

引发异常:

New

在这一行:

throw new ArgumentException(operationType.ToString());
Source File:  D:\Visual Studio 2008\Projects\DbLinq\src\DbLinq\Data\Linq\Sugar\Implementation\ExpressionDispatcher.Analyzer.cs    Line:  858 

但是这段代码:

var q = from u in db.Users select u;

完美地跑。

如果需要,我可以提供更多信息但是我不能发布整个源代码,因为它非常庞大(超过10,000行不计算html)。 有没有人遇到类似的问题?

编辑:经过进一步调查后,我发现DbLinq抱怨,因为它没有从查询中找到关键字New或MemberInit

var q = db.Posts.Select(post => post);

同时工作:

var q = db.Posts.Select(o => new SPost {Post = o});

var q = db.Users.Select(u => new {user = u});

引发异常。例外情况在第285 in trunk/src/DbLinq/Vendor/Implementation/SqlProvider.cs

1 个答案:

答案 0 :(得分:0)

我避免将DBLinq用于生产代码......许多Linq-To-SQL的功能都没有实现,并且遍历源代码显示成熟度很低......许多方法都没有实现或标记为“未终止”。

......你被警告了!