2017-09-28 71 views
2

我想向模型中添加更多驗證消息註釋(這裏的所有模型都是先由數據庫生成的),所以我在此鏈接https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/database-first-development/enhancing-data-validation的幫助下使用了元數據。沒有模型更新,但生成失敗並顯示警告,而不是:首先在實體框架中從數據庫中更新元數據模型不起作用

錯誤6046:無法生成存儲函數'fn_diagramobjects'的函數導入返回類型。

錯誤CS1061'Account'沒有包含'ConfirmPassword'的定義,也沒有找到接受'Account'類型的第一個參數的擴展方法'ConfirmPassword'(你是否缺少using指令或程序集引用?)項目-ASP-MVC d:.NET演示\項目\項目-ASP-MVC \ \控制器85 UserController.cs主動

這是我的模型從數據庫中生成:

using System; 
using System.Collections.Generic; 

public partial class Account 
{ 
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] 
    public Account() 
    { 
     this.Orders = new HashSet<Order>(); 
    } 

    public string username { get; set; } 
    public string password { get; set; } 
    public Nullable<int> role_id { get; set; } 

    public virtual Role Role { get; set; } 
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] 
    public virtual ICollection<Order> Orders { get; set; } 
} 

元.cs

using System.ComponentModel.DataAnnotations.Schema; 
using System.Linq; 
using System.Web; 

namespace project_asp_mvc.Models 
{ 
    public class AccountMetadata 
    { 
     [Required] 
     [StringLength(50, ErrorMessage = "Username con not be longer than 50")] 
     [EmailAddress] 
     public string username { get; set; } 

     [Required] 
     [DataType(DataType.Password)] 
     public string password { get; set; } 

     [Required] 
     [NotMapped] 
     [DataType(DataType.Password)] 
     [Compare("Password", ErrorMessage = "Please confirm your password again")] 
     public string ConfirmPassword { get; set; } 
    } 
} 

PartialClasses.cs

using System; 
using System.Collections.Generic; 
using System.ComponentModel.DataAnnotations; 
using System.Linq; 
using System.Web; 

namespace project_asp_mvc.Models 
{ 
    [MetadataType(typeof(AccountMetadata))] 
    public partial class Account 
    { 
    } 
    } 

回答

0

哪裏做這行代碼來自於AccountMetadata類。

[Required] 
[NotMapped] 
[DataType(DataType.Password)] 
[Compare("Password", ErrorMessage = "Please confirm your password again")] 
public string ConfirmPassword { get; set; } 

您似乎已將註釋添加到未在帳戶類中退出的屬性。 我建議你刪除這些行並重試。

+0

如果我刪除它,那麼如何確認2個密碼? –

+0

每次1個奇蹟。現在它甚至沒有建立。讓我們開始運行,以確保沒有更多的問題,然後從那裏開始。 – user8617089

+1

構建成功,但它仍然存在的警告,沒有什麼更新:嚴重性\t代碼\t說明\t項目\t文件\t線\t抑制狀態 警告\t \t錯誤6046:無法生成存儲功能「fn_diagramobjects」的函數導入的返回類型。商店功能將被忽略,並且不會生成功能導入 –

相關問題