![](/img/trans.png)
[英]Activator.CreateInstance throws a “keyword not supported” exception
[英]DbLinq Problems (Keyword New or MemberInit throws exception)
我正在将一个庞大的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});
引发异常。 在trunk / src / DbLinq / Vendor / Implementation / SqlProvider.cs中的第285行处例外
我会避免将DBLinq用于生产代码... Linq-To-SQL的许多功能尚未实现,并且遍历源代码显示出较低的成熟度...许多方法未实现或标记为“未终结”。
...您已被警告!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.