• 完善实体类,由EF自动生成数据库过程中的一些问题


    ①、配置两表间的关系时WillCascadeOnDelete(false)取消级联删除

     public AdminLogConfig()
            {
                this.ToTable("T_AdminLogs");
                this.Property(a => a.Msg).IsRequired();
                this.HasRequired(a => a.AdminUser).WithMany().HasForeignKey(a => a.AdminUserId).WillCascadeOnDelete(false);
    
            }

    ②、IsUnicode(false)设置为不支持中文

                Property(e => e.Email).HasMaxLength(30).IsRequired().IsUnicode(false);
                Property(e => e.PhoneNum).HasMaxLength(20).IsRequired().IsUnicode(false);
                Property(e => e.PasswordSalt).HasMaxLength(20).IsRequired().IsUnicode(false);
                Property(e => e.PasswordHash).HasMaxLength(100).IsRequired().IsUnicode(false);

    ③、配置一对多关系

    //一般配置到“多”端,因为“一端”可能根本不知道“多端”的存在
                HasOptional(u => u.City).WithMany().HasForeignKey(u => u.CityId)
                    .WillCascadeOnDelete(false);

    ④、配置多对多关系

    //多对多WithMany不能空
                HasMany(a => a.Houses).WithMany(a=>a.Attachments).Map(m=>m.ToTable("T_HouseAttachments")
                    .MapLeftKey("AttachmentId").MapRightKey("HouseId"));

    ⑤、Dbcontex应该在service层,不能到其他层,所以不声明为public

    class ZSZDbContext:DbContext

    ⑥、Database.SetInitializer<ZSZDbContext>(null);//当数据库建好之后就可以设置不让EF自动创建数据库,后期靠自己改数据库

    ⑦、生成数据库

    using (ZSZDbContext ctx = new ZSZDbContext())
                {
                    ctx.Database.Delete();
                    ctx.Database.Create();
                }

    ⑧、EF自动生成数据库,只需在UI层配置app.config,Service层只需引用EF

    <connectionStrings>
        <add name="****" connectionString="Data Source=.;Initial Catalog=*****;User ID=****;Password=****" providerName="System.Data.SqlClient" />
      </connectionStrings>

     ⑨、

    原因:其中的一个Entity没有继承BaseEntity

    ⑩、Service只需安装Log4NET,UI调用,所有配置文件在UI项目中

  • 相关阅读:
    centos6.5 安装redis自动启动
    正则去除字符串中的特殊字符
    数据库存储去重
    pymysql.err.ProgrammingError: (1064)(字符串转译问题)
    [转] Linux下SVN的三种备份方式
    ASP.NET ASHX中访问Session
    ionic 里使用 iframe 可能遇到的问题
    ionic $http 无法正常访问外部web服务器的问题
    Mac下80端口相关
    IIS7 无法写入配置文件web.config 错误
  • 原文地址:https://www.cnblogs.com/HuShaoyi/p/8536387.html
Copyright © 2020-2023  润新知