2017-01-30 31 views
1

假設我有下面的類:EF核心FromSql自定義屬性結合

public class Person 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    [NotMapped] 
    public bool Code { get; set; } 
} 

酒店Code不是列而是通過SQL查詢來計算。 我想使用FromSql方法將屬性Code綁定到我的Person類型。 事情是這樣的:

var result = db.Person 
       .FromSql("select Id, Name, 'Roar' as Code from Persons") 
       .Select(x => new Person 
       { 
        Id = x.Id, 
        Name = x.Name, 
        Code = EF.Property<string>(x, "Code") 
       }).ToList(); 

有什麼辦法,以自定義的SQL查詢變量爲對象屬性綁定?

+0

我不認爲這是可能與EF核心[文檔](https://docs.microsoft.com/en-us/ef/core/querying/raw-sql)說*「SQL查詢可以僅用於返回屬於模型一部分的實體類型「*,該列不屬於您的模型。 – DavidG

回答

0

感謝DavidG。骯髒的解決方法是刪除NotMapped屬性。 但是,爲避免刪除NotMapped屬性,可以使用LINQ表達式,以便code可以獲取其值。

基本上,如果您想使用複雜的自定義SQL查詢,最好的方法是使用ADO.NET。