ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C#-由外键ef 4.3编写的第一个复合键代码

2019-12-01 17:07:33  阅读:261  来源: 互联网

标签:ef-code-first code-first c


我在使用EF 4.3代码中的外键创建复合键时遇到问题.我想通过数据注释解决这个问题.我找不到正确的数据注释,该注释说EventID是Event的外键,并且是EventVote表中主键的一部分.我如何做到这一点

   public class EventVote
{

    [Key, Column(Order = 0)]
    [ForeignKey("Event")]
    public int EventID { get; set; }

    [Key, Column(Order = 1)]
    [ForeignKey("User")]
    public int UserID { get; set; }

    [Required]
    public DateTime VoteTime { get; set; }

    [Required]
    public bool Vote { get; set; }



    public virtual Event Event { get; set; }
    public virtual User User { get; set; }
}

错误
在表’EventVotes’上引入FOREIGN KEY约束’EventVote_User’可能会导致循环或多个级联路径.指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束.
无法创建约束.请参阅先前的错误.

解决方法:

尝试这个.您也可以在导航属性上放置ForeignKey注释,并引用FK的名称.不确定是否可以解决您的问题,但值得尝试

public class EventVote
{

    [Key, Column(Order = 0)]
    public int EventID { get; set; }

    [Key, Column(Order = 1)]
    public int UserID { get; set; }

    [Required]
    public DateTime VoteTime { get; set; }

    [Required]
    public bool Vote { get; set; }


    [ForeignKey("EventID")]
    public virtual Event Event { get; set; }
    [ForeignKey("UserID")]
    public virtual User User { get; set; }
}

编辑:从您的错误消息听起来像您有一个问题,类似于一对一的关系映射.请参阅本文,了解如何指定使用fluent API在每个关系的一侧禁用级联.

请参阅解决此问题的本文.请注意,他们使用的是Fluent API(可用来代替数据注释)来指定映射/关系,或者您可以使用“数据注释”,并仅在必要时使用Fluent API关闭级联/更新.

http://weblogs.asp.net/manavi/archive/2011/05/01/associations-in-ef-4-1-code-first-part-5-one-to-one-foreign-key-associations.aspx

标签:ef-code-first,code-first,c
来源: https://codeday.me/bug/20191201/2082074.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有