2
我正面臨着EF代碼第一版的問題,同時將一個實體映射到現有數據庫中的多個表。實體框架代碼優先 - 單個實體映射到多個表,但沒有公用密鑰
Table1: (primaryKey is IdDocument)
----------------------------
IdDocument | CreationDate
----------------------------
Table 2: (primaryKey is on IdDocument and StartDate)
------------------------------------------------------------
IdDocument | StartDate | Label | LastUpdate
------------------------------------------------------------
在單個實體中,我試圖更新數據庫中的信息。以下是實體類。
public abstract class DocumentBase
{
[Column("idDocument")]
public int? IdDocument { get; set; }
[Column("CreationDate")]
public DateTime CreationDate { get; set; }
}
public class Document : DocumentBase
{
[Column("startDate")]
public DateTime StartDate { get; set; }
[Column("lastUpdate")]
public DateTime LastUpdate { get; set; }
[Column("label")]
public string Label { get; set; }
}
以下是同一實體的DbModelBuilder,
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Document>()
.Map(m =>
{
m.Properties(document => new
{
document.IdDocument,
document.CreationDate
});
m.ToTable("MetaDocument");
}).Map(m =>
{
m.Properties(document => new
{
document.IdDocument,
document.StartDate,
document.EndDate,
document.Label,
document.LastUpdate,
document.Currency
});
m.ToTable("Document");
}).HasKey(key => new
{
key.IdDocument, key.StartDate
});
base.OnModelCreating(modelBuilder);
}
它沒有更新表1。
我試圖格式化您的代碼,使其更具可讀性。我希望它仍然是正確的。 – 2012-02-03 12:09:44