2009-05-12 1 views
0

Я переношу огромное веб-приложение с 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

ответ

0

Я бы не использовал DBLinq для производственного кода ... многие функции Linq-To-SQL не реализованы, а прохождение по исходному коду показывает низкий уровень зрелости. многие из методов не реализованы или не обозначены как «unterminated».

... вы были предупреждены!

+0

так что использовать в проекте MySql? – balint

+0

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