在关系数据库中,不同表之间往往不是全部都单独存在,而是相互存在关联的。两个不同表之间可以存在外键依赖关系,一个表自身也可以有自反关系(表中的一个字段引用主键,从而也是外键字段)。
Entity Framework Code First默认多重关系的一些约定规则:
微享商盟系统:两个类中分别包含一个引用和一个集合属性,也可以是一个类包含另一个类的引用属性,或一个类包含另一个类的集合属性。如在本篇接下来用到的例子Category类和Product类,要使得Category与Product之间具有一对多关系,Entity Framework Code First可以有3种体现方式:
1.在Category类中定义ICollection<Product> Products集合属性,同时在Product类中定义Category Category引用属性。
2.仅在Category类中定义ICollection<Product> Products集合属性。
3.仅在Product类中定义Category Category引用属性。
安徽微享商盟系统开发 找张丽 ¹⁸⁵⁶⁵⁴¹33⁶⁹ 微/电
商家可以对消费者奖励的金额进行调整,例如顾客消费100元:商家设定八折,商家会直接收到80元,20元存起作为消费奖励金,第二个消费者消费100,同样的20元作为奖励金,等到第5个消费者消费完奖励金就有100,超过100元了,美天共享将这100元奖励给第一个消费者。相当于第一个消费者不花钱得到了产品或服务。
1、微享商盟系统外键列名默认约定
Entity Framework Code First在根据默认约定创建外键时,外键列的名称存在3种方式。在《Programming Entity Framework Code First》一书中,给出的3种外键列名的约定方式是:[Target Type Key Name], [Target Type Name] + [Target Type Key Name], or [Navigation Property Name] + [Target Type Key Name],对应的中文翻译为:[目标类型的键名],[目标类型名称]+[目标类型键名称],或[引用属性名称]+[目标类型键名称]。
Entity Framework Code First外键默认约束生成的外键在分别满足3种不同的条件下,外键列名有3种不同的命名规则。且经过测试这3种不同的外键名称命名之间存在优先级:[目标类型的键名] > [引用属性名称]+[目标类型键名称] > [目标类型名称]+[目标类型键名称]。接下来以Product类及Category类为例,分别测试外键列名称的3中不同生成方式,Category与Product为一对多关系。
1>、[目标类型的键名]
这种方式为要求在Product表中外键列名与Category表中的主键列名相同,所以也就要求在Product类中有定义与Category类中作为主键的属性。如在Category类中主键属性为CategoryID,则需要在Product类中也定义一个CategoryID的属性。
如果你有技术队伍,某一个地方是你弱项,引进第三方开发定制然后交付给你技术队伍维护,相当于你拿钱买经验。微享商盟系统你值得拥有!