• .Net 入门资料推荐 (编辑中)


    1.首先推荐 网易云课堂上的一个付费课程:常老师带你学ASP.NET MVC ,价格199元

    2. 一个.net的框架,ABP,中文介绍如下 http://www.cnblogs.com/farb/p/ABPTheory.html

    3.经常遇到的ajax跨域请求的资源共享问题,参见这里http://www.ruanyifeng.com/blog/2016/04/cors.html

    3 entityframework 的 数据库更新命令 https://www.cnblogs.com/panchunting/p/entity-framework-code-first-migrations.html

    4.entityframework 必须知道的 fluent api 使用方法 https://www.cnblogs.com/caofangsheng/p/5715876.html

    这里我想说一下自己的心得,entity framework 有一定的智能,可以创建表与表之间的关联关系。

    比如:

    下面这个一对多关系

     public class Proposal : AggregateRoot<int>
        {
            
    
            public virtual List<ServiceType> ServiceTypes { get; set; }
    }
    
     public class ServiceType : Entity<long>
        {
    
           public virtual string Name { get; set; }
        
        }

    系统会自动向 servicetype表中,加入外键 Proposal_Id列,完成关联,调用proposal.ServiceTypes 是没问题的。

    但是下面这个就不行,不能调用proposal.requestor 会提示缺少外键关联:

     public class Proposal : AggregateRoot<int>
        {
            
            [ForeignKey("Requestor_Id")] //没有这个关联,proposal.requestor 就会出错
            public virtual User Requestor { get; set; }
    }
    
     public class User : AggregateRoot<int>
        {
            public virtual string Name { get; set; }
       
        }

    其实,这是一个一对多关系,一个user对应多个proposal,系统也会自动在Proposal表中加入 Requestor_Id 外键,去关联user。但是系统没有将

    Requestor属性和 Requestor_Id 外键 自动对应,需要我们手动对应,加入map。

    我觉得,在使用List等集合的时候,可以不做处理,但是如果直接使用其他数据库对象类型作为属性,就要进行手动的map操作,比如这里的 requestor。
    原因不是特别明白,等研究一下文档。
  • 相关阅读:
    springboot mybatis自定义枚举enum转换
    springboot结合swagger生成接口文档
    Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre
    java枚举enum equal与==
    linux安装redis
    springboot添加第三方的jar或本地jar
    SpringBoot Junit测试Controller
    List集合分页
    SpringBoot集成redisson分布式锁
    转载- ACM常见的各种说法
  • 原文地址:https://www.cnblogs.com/breezemist/p/7871686.html
Copyright © 2020-2023  润新知