モデルへのEntity Framework 7のストアドプロシージャの結果

c# entities entity-framework-core sql-server stored-procedures

質問

私はEF7を介してデータベースにマップされているモデルを持っています。すべてのプロパティは、テーブルのマッピングされた列と同じです。

今私はいくつかの結合された列を返しますが、基本はまだマップされているモデルですストアドプロシージャを持っています。

ここで私のモデル(Entity)は、私のデータベースのTable1にマップされます。

public partial class Table1 { public int id { get; set; } public bool Column1{ get; set; } public int Column2 { get; set; } public int Column3 { get; set; } public int Column4 { get; set; } public int Column5 { get; set; } }

My StoredProcedureはこれらの列をすべて返し、さらにこのオブジェクトに関する追加情報を含む別のテーブルの列を返します。

だから私のStoredProcedureは次のようになります:

CREATE PROCEDURE Table1_Select
    AS
        BEGIN
            SELECT  Column1,
                    Column2,
                    Column3,
                    Column4,
                    Column5,
                    Table2.JoinedColumn1
            FROM    Table1
            JOIN    Table2 on Table1.ID = Table2.ID_Table1
        END

私の考えは、単にモデルにプロパティを追加することでした

public string JoinedColumn1 {get; set;}

これはStoredProcedureを実行するために働いていますが、1つのEntityを取得するとすぐには機能しません

MyContext.Table1.FirstOrDefault(t=>t.id == 1)

これは常に "Table1FromSql(" Table1Select ")"でのストアドプロシージャの実行が正常に動作するのに対し、FiddlerではServer Error 500を返します。

または、モデルに直接StoredProceduresを使用するかエンティティに直接アクセスするかを決める必要がありますか?

このためのベストプラクティスまたはソリューション?

事前に多くの感謝。ニン

人気のある回答

あなたの最近の投稿から、あなたは同じモデルを使用しているとエラーが発生していると言いましたので、あなたのpertcular宣言されたエンティティの前に[NOTMAPPED]

public int Column5 { get; set; }あなたのSPを呼び出している間だけ使用されるので、

[NotMapped]
public int Column5 { get; set; }


Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ