我首先使用 EF 代码。
这是我的模型师
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
modelBuilder.Entity<Market>()
.HasRequired(s => s.State)
.WithMany()
.HasForeignKey(s => s.StateId)
.WillCascadeOnDelete(false);
}
和状态类:
public class State
{
public State()
{
Markets = new HashSet<Market>();
}
[Key]
public int StateId { get; set; }
public string StateName { get; set; }
// navigation property
public virtual ICollection<Market> Markets { get; set; }
}
和市场类:
public class Market
{
[Key]
public int MarketId { get; set; }
public string MarketName { get; set; }
public int StateId { get; set; }
// navigation property
public virtual State State { get; set; }
}
当然,我删除了额外的代码。
问题是当我使用此代码时,State_StateId 列会添加到数据库中的我的 Market 表中,并且当我不使用模型构建器时,消息循环代码发生错误并且......(我说我删除了额外的代码),所以怎么能我首先使用没有这个“State_StateId”额外列的代码。
请原谅我的英文写作不好。