簡體   English   中英

實體框架數據注解

[英]Entity Framework data annotation

public partial class SystemUser
{
    [Display(Name = "User")]
    public string Username { get; set; }
    [Display(Name = "Pass")]
    public string Password { get; set; }
    public Nullable<bool> Type { get; set; }
}

當使用此語句從數據庫查詢時,數據注釋工作正常:

context.SystemUsers.ToList();

但是當我在查詢中使用“new”關鍵字時,數據注釋會被自動忽略。

context.SystemUsers.Select(u=> new
{
    u.Username,
    u.Type
});

我想使用我告訴的第二個查詢並防止數據注釋忽略解決方案是什么?

如果你想要數據注釋,那么寫如下:

context.SystemUsers.Select(u=> new SystemUser
{
    u.Username,
    u.Type
});

因為您在SystemUser視圖模式中提供了詳細信息,並且如果您僅使用new創建,那么它會創建不包含數據注釋的匿名對象。

當我在查詢中使用“new”關鍵字時,數據注釋會被自動忽略

這些數據注釋僅在SystemUser類型上表示。 但是您的.Select()子句正在將對象轉換為新的匿名類型。 它可能具有與SystemUser相同的直觀結構(相同的屬性名稱/類型/等),但作為靜態類型語言,它絕對不是SystemUser對象。

為了使用SystemUser類型,您必須選擇該類型:

context.SystemUsers.Select(u => new SystemUser
{
    Username = u.Username,
    Type = u.Type
});

暫無
暫無

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

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