Ben*_*rth 12 entity-framework entity-framework-4.1 azure-sql-database
我遇到了代码优先模型的问题.数据现在在数据库中,所以我不能使用DropCreateDatabaseIfModelChanges类重新种子数据库,但我需要更改一个表,以便bigint列不是IDENTITY(1,1).我已经成功使用SSMS,但现在我的EF代码说它已经过时了.这是有问题的表的代码:
public class Vote {
[Required, Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public long FacebookUserId { get; set; }
[Required]
public Entity Entity { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
所以我改变了我的表模式和我的模型(我认为它是它的反映,但我显然是错的),但EF仍然说我的模型已经过时了,我无法重新播种数据库让它"完美".
任何帮助将非常感激.
谢谢,
本杰明
使用数据注释:
public class Customer
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int CustomerID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
使用流畅的API:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Customer>().Property(c => c.CustomerID).HasDatabaseGeneratedOption(null);
base.OnModelCreating(modelBuilder);
}
Run Code Online (Sandbox Code Playgroud)
尝试将其添加到您的OnModelCreating
:
modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
Run Code Online (Sandbox Code Playgroud)
这应该消除模型已过期的异常,但在此之前您必须始终手动同步模型和数据库。
归档时间: |
|
查看次数: |
13181 次 |
最近记录: |