0

私が使用しているデータベース (これを制御することはできません) の列に null があり、コードが台無しになっているようです。適切な場所と思われるため、プロジェクトのモデル部分でこれを処理したいと考えています。顧客ゲッターを作成することは、私にとっては良いアイデアのように思えます。

クラス

public string _DesignLink { get; set; } 
public virtual string DesignLink {
    get { return _DesignLink ?? ""; }
}

マッピング

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
...
modelBuilder.Entity<ToolPlan>().Property(t => t._DesignLink).HasColumnName("DesignLink");
...
}

ロジックは私の頭の中で機能します。ゲッターを機能させるために仮想プロパティを作成し、そのプロパティを実際の列に再マップします。私に与えられたエラーは次のとおりです。

One or more validation errors were detected during model generation:

System.Data.Entity.Edm.EdmProperty: Name: The specified name is not allowed: '_DesignLink'.

このエラーは、データベースに初めてアクセスしたときに発生します。この列のすべての null 値をプロジェクトの空白スペースに表示するにはどうすればよいですか?

4

2 に答える 2

1

あなたはこれについて難しい方法で進んでいます。カスタムゲッターは悪い計画ではありませんが、プロパティ自体が必要なだけです:

private string designLink;
public string DesignLink
{
    get { return designLink ?? string.Empty; }
    set { designLink = value; }
}

それだけで十分です。

于 2013-10-03T18:41:15.717 に答える
0

andで少し装飾する必要がありNotMapppedAttributeますColumnAttribute

[Column("DesignLink")] // want this property to map to DB column
public string _DesignLink { get; set; } 

public string DesignLink {
    get { return _DesignLink ?? ""; }
}
于 2013-10-03T19:04:05.693 に答える