C# -> Entity Framework 6.1.3 -> 复合可为空的外键字符串

猫头鹰玻璃

我正在与外部系统进行集成,在该系统中他们使用大量复合键,并且经常使用strings. 我现在面临一个问题,我需要制作一个复合外键nullable如果值是一个,int我可以将它标记为可空,int?但这在这里是不可能的。我想我必须使用 fluent api,但如果可能的话,数据注释是首选方式。更难的是,外键的第一部分也用作主键的第一部分,因此不能为空。

BillCurrencyDisbCurrencyforFeeCalculation是下面需要可以为空的键。创建的模型除了可空部分之外都是有效的。

明显的异常消息:

INSERT 语句与 FOREIGN KEY 约束“FK_dbo.FeeCalculations_dbo.ExchangeRates_BusinessSystemId_BillCurrency”冲突。冲突发生在数据库“Project.Database”、表“dbo.ExchangeRates”中。该语句已终止。

public class FeeCalculation
{
    [Key, Column(Order = 0)]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public string BusinessSystemId { get; set; }

    [Key, Column(Order = 1)]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int CaseId { get; set; }

    public string BillCurrency { get; set; }

    [ForeignKey("BusinessSystemId,BillCurrency")]
    public virtual ExchangeRate BillCurrencyObject { get; set; }

    public string DisbCurrency { get; set; }

    [ForeignKey("BusinessSystemId,DisbCurrency")]
    public virtual ExchangeRate DisbCurrencyObject { get; set; }

}

public class ExchangeRate
{
    [Key, Column(Order = 0)]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public string BusinessSystemId { get; set; }

    [Key, Column(Order = 1)]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public string ForeignCurrency { get; set; }

    public string HomeCurrency { get; set; }

    public DateTime EffectiveDate { get; set; }

    public double Rate { get; set; }
}
猫头鹰玻璃

结果证明模型没有问题,它是一个FeeCalculation损坏值并试图插入一个不存在的键ExchangeRate

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Entity Framework 6 Code First中创建多个1:1外键关系?

来自分类Dev

生成意外格式的C#Entity Framework 6外键约束

来自分类Dev

将连接字符串传递给Entity Framework 6

来自分类Dev

如何在Entity Framework 6中更改字符串属性的默认最大长度?

来自分类Dev

如何在Entity Framework 6中更改字符串属性的默认最大长度?

来自分类Dev

Entity Framework 6 transaction rollback

来自分类Dev

通过外键在Entity Framework 6中的另一个表中获取记录

来自分类Dev

Entity Framework 6中的ScriptIgnore属性打破了外键属性

来自分类Dev

在Entity Framework 7 RC 1和ASP.NET MVC 6中播种初始数据

来自分类Dev

使用SQLite 3代码优先的Entity Framework 6-无法创建表

来自分类Dev

查询以使用Entity Framework和C#检查列是否可为空

来自分类Dev

使用Entity Framework C#将字符串转换为日期

来自分类Dev

首先使用Entity Framework 6代码:将字符串属性的unicode设置为false

来自分类Dev

首先使用Entity Framework 6代码:将字符串属性的unicode设置为false

来自分类Dev

迁移中的Entity Framework 7复合键

来自分类Dev

c# 使用 Entity Framework 6 从 sql 表打印 ID、姓名和生日

来自分类Dev

Mono Entity Framework 6个重复项

来自分类Dev

Does Entity Framework 6 support .NET 4.0?

来自分类Dev

Entity Framework 6产生的效率低下的查询

来自分类Dev

如何模拟Entity Framework 6异步方法?

来自分类Dev

从Entity Framework 6中的集合中删除

来自分类Dev

Breeze何时会支持Entity Framework 6?

来自分类Dev

在Entity Framework 6中查询多个列

来自分类Dev

如何抑制从Entity Framework 6 IDbCommandTreeInterceptor执行?

来自分类Dev

Update just one field in Entity Framework 6

来自分类Dev

使用Entity Framework 6创建计算字段

来自分类Dev

如何模拟Entity Framework 6异步方法?

来自分类Dev

Entity Framework v6 中的 TPC

来自分类Dev

具有Entity Framework CodeFirst方法的MVC 3不会保存和检索外键对象

Related 相关文章

  1. 1

    如何在Entity Framework 6 Code First中创建多个1:1外键关系?

  2. 2

    生成意外格式的C#Entity Framework 6外键约束

  3. 3

    将连接字符串传递给Entity Framework 6

  4. 4

    如何在Entity Framework 6中更改字符串属性的默认最大长度?

  5. 5

    如何在Entity Framework 6中更改字符串属性的默认最大长度?

  6. 6

    Entity Framework 6 transaction rollback

  7. 7

    通过外键在Entity Framework 6中的另一个表中获取记录

  8. 8

    Entity Framework 6中的ScriptIgnore属性打破了外键属性

  9. 9

    在Entity Framework 7 RC 1和ASP.NET MVC 6中播种初始数据

  10. 10

    使用SQLite 3代码优先的Entity Framework 6-无法创建表

  11. 11

    查询以使用Entity Framework和C#检查列是否可为空

  12. 12

    使用Entity Framework C#将字符串转换为日期

  13. 13

    首先使用Entity Framework 6代码:将字符串属性的unicode设置为false

  14. 14

    首先使用Entity Framework 6代码:将字符串属性的unicode设置为false

  15. 15

    迁移中的Entity Framework 7复合键

  16. 16

    c# 使用 Entity Framework 6 从 sql 表打印 ID、姓名和生日

  17. 17

    Mono Entity Framework 6个重复项

  18. 18

    Does Entity Framework 6 support .NET 4.0?

  19. 19

    Entity Framework 6产生的效率低下的查询

  20. 20

    如何模拟Entity Framework 6异步方法?

  21. 21

    从Entity Framework 6中的集合中删除

  22. 22

    Breeze何时会支持Entity Framework 6?

  23. 23

    在Entity Framework 6中查询多个列

  24. 24

    如何抑制从Entity Framework 6 IDbCommandTreeInterceptor执行?

  25. 25

    Update just one field in Entity Framework 6

  26. 26

    使用Entity Framework 6创建计算字段

  27. 27

    如何模拟Entity Framework 6异步方法?

  28. 28

    Entity Framework v6 中的 TPC

  29. 29

    具有Entity Framework CodeFirst方法的MVC 3不会保存和检索外键对象

热门标签

归档