2017-09-28 41 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”的函数导入的返回类型。商店功能将被忽略,并且不会生成功能导入 –

相关问题