Long (BigInt) не поддерживается с Jet.int - PullRequest
0 голосов
/ 18 мая 2019

Код Первые модели, содержащие длинное свойство, не могут сопоставить доступ к базе данных при использовании jetEntityFrameworkProvider. Проблема в том, что я не могу изменить тип данных этого свойства с Long на Int.

Вот ошибка:

Member Mapping specified is not valid. The type 
'Edm.Int64[Nullable=False,DefaultValue=]' of member 
'Transfere_Document_Number' in type 'Data.MoneyTransfer' is not 
compatible with 'Jet.int[Nullable=False,DefaultValue=]' of member 
'Transfere_Document_Number' in type 
'CodeFirstDatabaseSchema.MoneyTransfer'.

1 Ответ

0 голосов
/ 15 июня 2019

Проведя целые 3 дня, работая над этой проблемой и некоторыми другими, связанными с JetEntityFramewrok, я придумал решение.

Если длинный столбец не является ни первичным, ни внешним ключом, просто добавьте следующееАтрибут аннотации данных над ним:

[Column("Column_Name", TypeName="BigInt")]

Но, если это был первичный ключ, то будет работать то же самое за исключением того, что вы потеряете автоматическую идентификацию нового значения.Означает, что вам придется вручную вычислять новое значение столбца.

Я использую следующий метод, у всех есть лучший подход, пожалуйста, напишите это в комментарии или отредактируйте ответ и добавьте его в конце (Спасибозаранее):

Long id = 1;
If (Context.TableName.Count() > 0)
     Id = Context.TableName.Max(x=>x.id) + 1;

TableName obj = new TableName(){ Id = id};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...