Long(Bigint)不受Jet.Int的支持



代码第一个包含长属性的模型在使用jetEntityFrameworkProvider时无法映射以访问数据库。问题是我无法将该属性的数据类型从长时间更改为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'.

花了整整3天的时间处理此问题,其他一些与JetentityFrameWrok有关的问题,我想到了Sloution。

如果长列不是主键也不是Forigen键,请在其上方添加以下数据注释属性:

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

,但是,如果它是主要键,则同一sloution将起作用,除非您会丢失自动新值识别。意味着您必须手动计算列新值。

我使用以下方法,任何人都有更好的方法,请在评论中写下或编辑答案并在最后添加(谢谢(:

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

相关内容

最新更新