11

データベースに実際にはフィールドがないモデルにフィールドを追加する必要があります。

最初に、フィールドを Entity クラスにのみ追加しようとしたためです。

public partial class Weborder
{
  (Auto Generated)
  public int orderno {get; set;}
  .
  .
  .
  (Add Manually)
  public string newField1 {get; set;} //this is new field that DB does not have
  public string newField2 {get; set;} //this is new field that DB does not have
}

その後、EDXM を更新すると、データベースにフィールドがないため、EDMX は新しいフィールドを削除します。:(

そのため、フィールドを EDMX モデルに手動で追加します。(追加 -> スカラー プロパティ)

コンパイル中にエラーが発生すると、エラーメッセージは次のようになります。

Error   1   Error 3004: Problem in mapping fragments starting at line 399:No mapping specified for properties ...
An Entity with Key (PK) will not round-trip when:...

新しいフィールドをエンティティ クラスに追加する方法を知っている人はいますか?

ありがとうございました!

EDITED FOR : モデルがデータベースの表現であり、データベースにフィールドがない場合、手動で追加する必要があるのはなぜですか?

=>

データを取得する場合、オブジェクトの戻り型はエンティティ クラスです。

コントローラーからビューにデータを渡す前に、IQueryable の結果にさらにデータ (フィールド) を追加する必要があります。

元)

public DbSet<WEBORDERLN> WEBORDERLNs { get; set; }

//repository
public IQueryable<WEBORDERLN> WebOrderLns
{
      get { return context.WEBORDERLNs; }
}

そして今、コントローラーで weborderln データを取得します。ビューを渡す前に、私はする必要があります

結果に余分なデータを追加します。

var data = webOrderLnRepository.WebOrderLns.Where(e => e.PICKNO == OrderNo).ToList();

foreach (WEBORDERLN weborderln in data)
{
   weborderln.[NEW FIELD] = "EXTRA DATA";   //// FOR THIS, I NEED TO ADD NEW FILED INTO ENTITY CLASS
}

//return data

質問を説明できることを願っています:)

再度、感謝します。

4

3 に答える 3

14

エンティティクラスの新しい部分部分を(新しい.csファイルに)作成し、そのクラスに新しいフィールドを追加する必要があります。自動生成されたファイルはEDMXファイルを変更するたびに上書きされるため、自動生成によって作成された部分を変更しないでください。また、EDMXはデータベースへのマッピングを定義するため、EDMXにフィールドを含めないでください=データベース内のフィールドのみが含まれます。

自動生成されたクラスと同じアセンブリおよび名前空間に、以下を含む新しいファイルWebOrderPart.csを作成します。

public partial class Weborder
{
  public string newField1 {get; set;} 
  public string newField2 {get; set;} 
}
于 2012-04-23T14:26:49.470 に答える
6

[NotMapped] は動作しません。

 [NotMapped]
 public string newField1 {get; set;}
于 2012-04-23T14:25:36.473 に答える
3

まず、データ モデル ファイルを変更しないでください。このファイルはデータを表します。

次に、リポジトリからデータ モデル オブジェクト/コレクションを返すべきではありません。コントローラー/ビューとモデルの間に依存関係を作成しているため、これは非常に悪い習慣です。ビューで必要なプロパティを含むカスタム モデル オブジェクトを作成し、エンティティをそれらのモデル オブジェクトにマップし、リポジトリからモデル オブジェクトまたはモデル オブジェクトのコレクションのみを返すことをお勧めします。

于 2012-04-23T14:39:21.263 に答える