【发布时间】:2012-02-03 05:37:26
【问题描述】:
在将一个实体映射到现有数据库中的多个表时,我遇到了关于 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);
}
无法更新 Table1。
【问题讨论】:
-
我已尝试格式化您的代码,使其更具可读性。我希望它仍然是正确的。
标签: entity-framework-4 code-first