データベースに実際にフィールドがないフィールドをモデルに追加する必要があります。Entity Framework 4(EDMXを使用)、フィールドに実際にフィールドがないことをモデルに追加する方法
まず、フィールドを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の場合:?! お使いのモデルのI場合あなたのデータベースの表現で、データベースにはフィールドがないので、なぜ手動で追加したいのですか?
=>
データを取得し、オブジェクトの戻り型は、エンティティ・クラスです。
コントローラからビューにデータを渡す前に、データ(フィールド)をIQueryableの結果に追加する必要があります。
EX)
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
私はそれが再び質問:)
感謝を説明することを願っています。
モデルがデータベースの表現であり、データベースにデータベースがない場合は、手動で追加する理由は何ですか? – Dante
@Dante、ありがとうございました。私は私の質問を再度編集しました。私の質問を再検討してください。あなたは何か考えがあるなら、アドバイスをお願いします。 –
あなたは基本的にViewModelsの利用のシナリオを説明しています。データモデルからマップされ、ビューにデータを渡す目的でビューから派生したモデル。今では、Entity Framework自体でViewModelを構築するのが簡単ではないかと疑問を抱いていましたが(OData Servicesなどを使用して照会したい場合があるため)、実際にそこに属しているかどうかはわかりません。 – JayC