Я переношу огромное веб-приложение с SQL Server на MySql. Приложение использует Linq, поэтому я использую DBLinq. В настоящее время большинство вещей работают нормально, за исключением того, что на нескольких страницах я получаю странную ошибку. Все началось с этого:Проблемы с DbLinq (исключение Keyword New или MemberInit throws)
Property 'Int32 ForumID' is not defined for type 'DbLinq.Data.Linq.Table`1[CPost]'
Я, очевидно, получил ForumID в классе CPost, так что это не проблема. Я попытался скопировать запрос в отдельный файл и начал удалять его части, чтобы узнать, что вызвало ошибку. Через некоторое время я узнал, что эту линию:
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;
Ran Perfectly.
Я могу предоставить дополнительную информацию, если это необходимо, но я не могу опубликовать весь исходный код, так как он довольно огромен. (выше 10 000 строк, не считая html). У кого-нибудь были схожие проблемы?
EDIT: После некоторого дальнейшего исследования я обнаружил, что DbLinq жалуется, потому что не находит ключевое слово Новый или 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
так что использовать в проекте MySql? – balint
http://stackoverflow.com/questions/951634/dblinq-cache-problem/1680771#1680771 http://stackoverflow.com/questions/760665/dblinq-not-generating-where-clause/1680766#1680766 http://stackoverflow.com/questions/1455064/dblinq-and-mono-2-4-working-together/1680768#1680768 http://stackoverflow.com/questions/558915/is-db-linq-non-sql-server- База данных-приемлемый-заменитель-для-linq-to-sql-wit/1680777 # 1680777 ... кто-то был недоволен ;-) – RedGlyph