EF Code First 设置复合主键的方法

除了单纯多对多的关系表外, 我们可能在关系表上加其他的属性: 比如【订单行】 对应的【订单】和【商品】就需要多一个数量字段

而又不想在这个【订单行】表上加上没什么实际意义的独立主键

本以为FluentApi调用2次HasKey(property)就可以将2个外键字段弄成复合主键,结果发现只有后面设置的主键才起作用,求助q群得如下注解方式

既然可以用注解的方式实现,那么FluentApi的方式也肯定是可以的:

发现更简单;

PS: FluentAPI中设置主键的方法 HasKey(xxx) 会覆盖之前的HasKey()设置

C# 平时碰见的问题【6】的更多相关文章

  1. C# 平时碰见的问题【5】

    vs按F5启动调试,项目不会编译的解决办法 工具 -> 选项 -> 项目和解决方案 -> 运行时, 当项目过期(下拉框) -> 不要选[从不生成] 附英文版的:

  2. C# 平时碰见的问题【4】

    1. 模糊查询 like的参数化写法 string keyword="value"; // 要模糊匹配的值 错误示范:   sql:    string strSql=" ...

  3. C# 平时碰见的问题【3】

    今天发现一个问题纳闷了半个小时, 需求是处理project文件里边的数据内容,其中需要判断任务名称不存在重复; 在测试的时候弄了两行一样的任务,如预想: 任务[xxx]重复 然后删掉重复的任务行,继续 ...

  4. C# 平时碰见的问题【2】

    问题1 修改命名空间后 .ashx 类型创建失败 [情景] 在调整前后台项目结构的时候,修改了默认命名空间(XXX.Admin 修改成XXX.Web),结果调试的时候发现XXX.Admin.Ajax. ...

  5. C# 平时碰见的问题【1】

    1. SqlBulkCopy 可以利用这个类实现快速大批量新增数据的效果, 但在使用过程中发现了一个问题: 无法将数据源中的DateTime类型转换成数据库中的int类型 看起来就是数据列不对应导致的 ...

  6. Android使用静默安装时碰见的问题

    升级时碰见的异常 private void installPackage(String appName,final File apk) { if (!apk.exists()) { setHasNew ...

  7. 使用karma测试平时写的小demo(arguments为例)

    有人说前端自动化测试非常困难,我觉得确实如此.在项目中,我个人也不放心写的测试,还是要手动测试.但是我们平时写demo学习时,完全可以使用自动化测试. 传统demo 1,新建一个html 2,写入js ...

  8. CSS3动画几个平时没注意的属性

    一.timing-function: steps() 一开始在使用CSS3的时候并没有太注意这个timing-function,只是注意到自定义贝塞尔曲线. 1)一个项目中的实例 先来看看左边加了st ...

  9. 这些HTML、CSS知识点,面试和平时开发都需要 No1-No4

    系列知识点汇总 这些HTML.CSS知识点,面试和平时开发都需要 No1-No4(知识点:HTML.CSS.盒子模型.内容布局) 这些HTML.CSS知识点,面试和平时开发都需要 No5-No7(知识 ...

随机推荐

  1. Android--Intent的使用

    1.Activity之间的切换通过Intent来完成. 1)清单文件,配置好Activity,所有Activity都需要在该文件中配置. <?xml version="1.0" ...

  2. Sqoop增量从MySQL中向hive导入数据

    sqoop job --create incretest -- import --connect jdbc:mysql://10.8.2.19:3306/db --table table1 --use ...

  3. Oracle教程:如何诊断节点重启问题(转载)

    本文对如何诊断RAC环境中节点重启问题进行了介绍.适用于10gR2和11gR1. 首先我们对能够导致节点重启的CRS进程进行介绍.1.ocssd : 它的主要功能是节点监控(Node Monitori ...

  4. JQuery 插件FlexiGrid 之完全配置与使用

    博客分类: Java综合 jQuery配置管理jsonServlet数据结构  自己再做这个的时候.也是找了很多资料..但网上搜索了很多资料. 没有介绍的很全的. 鄙人就在此献丑一下. 来全面的介绍一 ...

  5. 网站注册(css)

    <! DOCTYPE HTML><html><head><meta charset="utf-8"><title>作业2 ...

  6. 用FireBreath制作浏览器插件

    参考: http://blog.csdn.net/z6482/article/details/7486921 1.下载firebreath, 安装cmake, python. 2.在FireBreat ...

  7. 【Unity Shaders】学习笔记——SurfaceShader(六)混合纹理

    [Unity Shaders]学习笔记——SurfaceShader(六)混合纹理 转载请注明出处:http://www.cnblogs.com/-867259206/p/5619810.html 写 ...

  8. 关于lambda表达式在javascript中的使用

    了解过js函数的同学应该都知道js的函数有很多种创建方式. 如: function fun(){}: var fun=function(){}: 但最近的学习中发现了lambda表达式型的创建js的匿 ...

  9. Drupal8开发教程:模块开发——创建新页面

    之前我们已经通过<Drupal8开发教程:认识.info.yml文件>对模块的YAML文件有了了解,今天我们来看如何通过模块开发的方式添加一个新的页面. 在 Drupal 7 中,通过模块 ...

  10. 无法读取配置节“protocolMapping”,因为它缺少节声明

    无法读取配置节“protocolMapping”,因为它缺少节声明 1.正常情况   :  Web.config文件中有protocolMapping节点, 发现在IIS部署时使用了.NET 2.0的 ...