簡體   English   中英

實體框架-調用存儲過程而不映射

[英]Entity Framework - Calling A Stored Procedure Without Mapping

我目前使用的是使用實體框架(EF)的數據庫優先方法。 我正在研究使用EF調用存儲過程(與實體無關的存儲過程)的不同方法。 目前,我使用的方法在這里找到使用設計器(在這種方法中,我輸入一個存儲過程,創建一個函數,進口和使用的復雜類型作為我映射對象)。 我不喜歡它,因為它依賴於膨脹的EDMX文件,當兩個或更多人執行此過程並檢入他們的代碼時,它將在源代碼控制中引起合並沖突。

我發現這篇文章聲稱可以調用存儲過程並映射到普通的舊C#對象(PO​​CO)。

我的問題是,是否要不使用設計器方法將映射到EF中的POCO到存儲過程,如何獲得列名的別名? 例如,假設我調用了一個存儲過程,並獲得了名為“ CustomerID”的特定列,並且我希望映射到它的屬性命名為“ Id”,而不是“ CustomerID”。 不使用設計器方法怎么辦?

類似於以下內容的東西應該起作用:

[your db context].Database.SqlQuery<[your POCO class]>("[name of stored proc] [comma separated parameters]", parameter1, parameter2, .....)

這是我的一個應用程序中的示例:

_context.Database.SqlQuery<Library>("usp_paged_select_libraries @userId, @offset, @fetch",                    userIdParameter, offsetParameter, fetchParameter);

在您的POCO中,您可以使用以下方式標記您的財產:

[Column("[your alias here]")]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM