我有一個通過EF7映射到數據庫的模型。所有屬性都與表格的映射列相同。實體框架7存儲過程結果到模型
現在我有一個存儲過程,它返回一些連接列,但基礎仍然是映射模型。
這是我的模型(實體),它被映射到我的數據庫上的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; } }
我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的,但它不盡快工作因爲我想得到一個實體
MyContext.Table1.FirstOrDefault(t=>t.id == 1)
這總是返回一個服務器Fiddler中的錯誤500,而使用「Table1.FromSql(」Table1Select「)」的存儲過程執行「正常工作。
或者我必須決定是否對我的模型使用StoredProcedures或直接訪問實體?
任何最佳實踐或解決方案?
非常感謝提前。 Nicn
爲什麼包括使用實體框架數據庫優先方針項目,而不是存儲過程? –
如何在Scaffold命令中添加StoredProcedures?我只發現[此鏈接](https://github.com/aspnet/EntityFramework/wiki/Design-Meeting-Notes-(2015年10月1日)#table-selection-in-reverse-engineering) t爲表或-s爲模式... – nicn