2
EFコードの最初のバージョンに関する問題に直面していますが、既存のデータベースの複数のテーブルにエンティティをマッピングしています。エンティティフレームワークコードファースト - 共通エンティティなしの複数のテーブルへの単一エンティティ
Table1: (primaryKey is IdDocument)
----------------------------
IdDocument | CreationDate
----------------------------
Table 2: (primaryKey is on IdDocument and StartDate)
------------------------------------------------------------
IdDocument | StartDate | Label | LastUpdate
------------------------------------------------------------
私はデータベース内の情報を更新しようとしていました。以下はエンティティクラスです。これは、表1を更新するために失敗した
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);
}
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です。
コードをより読みやすくなるように書式設定しようとしました。私はまだそれが正しいことを願っています。 –