[英]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.