• Entity Framework学习四:查询和建模进阶


    1.复杂类型(complex types)

        复杂类型是定义Entity列集合的类,没有主键,不直接映射表。在类中定义复杂类型时,必须为非集合类型。

       看实例,我们在前面几篇学习中的实例中添加Address类

    public class Address
        {
            public string Street { get; set; }
            public string City { get; set; }
            public string State { get; set; }
        }
    
        public class AddressMap : ComplexTypeConfiguration<Address>
        {
            public AddressMap()
            {
                Property(p => p.Street)
                    .HasColumnName("Street");
                Property(p => p.City)
                    .HasColumnName("City");
                Ignore(p => p.State);//忽略State对表列的映射,在数据库表中不会有此列
            }
        }

    在People类中添加属性。注意一点的是添加属性后必须在构造函数中初始化,否则会异常

    public Address Address { get; set; }//必须为集合属性
    public Person()
            {
                Phones = new HashSet<Phone>();
                CompanyList = new HashSet<Company>();
                Address = new Address();//必须初始化
            }

    记得在Context中注册AddressMap

    modelBuilder.Configurations.Add(new AddressMap());

    那么我们在数据中怎么对应?我们需要在People表中增加Street列和City列,结构如下

    image

    2.使用枚举类型

    在程序中使用枚举类型来对数据库中数字进行表示,能够让程序有更好的可读性。我们定义一个PersonState枚举类型

    public enum PersonState
        {
            Active,
            IsActive,
            Unknow
        }

    在前面程序的People类中添加代码:

    public class Person
        {     
    
            
    public PersonState PersonState { get; set
    ; }//新增
    
        }

    还有一步要做的就是要在前面People表中增加PersonState字段,定义为int类型。

    image

    下面我们就可以利用枚举类型了,看示例:

    var query = context.People.Where(p => p.PersonState == PersonState.Active);
                foreach(var person in query)
                {
                    Console.WriteLine(person.LastName);
                }
  • 相关阅读:
    基于Modelsim的直方图线性拉伸
    基于Modelsim的直方图统计算法仿真
    基于Modelsim的均值滤波仿真
    基于Modelsim的直方图均衡化算法仿真
    基于FPGA的RGB图像转灰度图像算法实现
    基于Modelsim的视频捕获模拟仿真
    基于Modelsim的视频流仿真
    【MSSQL】执行大sql文件-内容乱码处理
    【WINForm】C#应用程序图标设置问题
    【dotNet Core】Swagger下简单的给WebApi分组
  • 原文地址:https://www.cnblogs.com/zjmsky/p/4827865.html
Copyright © 2020-2023  润新知