Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Fluent API中带常数的外键_C#_Sql Server_Entity Framework_Ef Fluent Api - Fatal编程技术网

C# Fluent API中带常数的外键

C# Fluent API中带常数的外键,c#,sql-server,entity-framework,ef-fluent-api,C#,Sql Server,Entity Framework,Ef Fluent Api,我需要从数据库中加载一个required:many关系。现在我的问题是,相关表的键由三个键组成: public partial class EnumValue { [Key] [Column(Order = 0)] [StringLength(14)] public string EnumGroup { get; set; } [Key] [Column(Order = 1)] public byte EnumId { get; set;

我需要从数据库中加载一个required:many关系。现在我的问题是,相关表的键由三个键组成:

public partial class EnumValue
{
    [Key]
    [Column(Order = 0)]
    [StringLength(14)]
    public string EnumGroup { get; set; }

    [Key]
    [Column(Order = 1)]
    public byte EnumId { get; set; }

    [Key]
    [Column(Order = 2)]
    [StringLength(3)]
    public string Language { get; set; }

    [StringLength(50)]
    public string Description { get; set; }

}
在我的另一个对象中,我只有一个属性来填充外键,其他部分是该对象特定的常量。
我尝试在EF6中建立关系,但无法使用常量而不是属性使其与model builder和Fluent API一起工作:

modelBuilder.Entity<SupplierCondition>()                
    .HasRequired(t => t.ConditionTypeLookupRef)
    .WithMany()
    .HasForeignKey(t => new { "PArt", t.ConditionType, "EN" });
modelBuilder.Entity()
.HasRequired(t=>t.ConditionTypeLookupRef)
.有很多
.HasForeignKey(t=>new{“PArt”,t.ConditionType,“EN”});

如何在Fluent API中将常量作为外键的值传递?

您不能使用这些常量值,因为没有指定任何值,请通知Fluent API,哪个属性引用另一个表,当您传递“text”,或2,或new List()时,它将不起作用。它们不是属性,我认为您可以将其分为三个表,并将其用作标记。但是我看不到更大的图景。

如果这些常量总是相同的,那么主键就是ConditionType属性。对于“SupplierCondition”,它总是相同的,对于另一个表,它是不同的。在
HasForeignKey()
调用中,匿名类型的结构使用了什么?如前所述,我正试图使用该构造来指定外键的名称。谢谢您的回答。我不能划分表,这是一个大系统,其他应用程序也可以访问。因此,不可能对数据库进行任何更改。我想我必须找到其他的解决办法…@OblTobl你找到解决这个问题的办法了吗?我在这里遇到了同样的问题,我开始有点沮丧了。@krpec不,不幸的是没有。现在,我使用了一种变通方法,从modelbuilder中删除了相应的Entite,并在相应的控制器中编写了方法,在该控制器中我可以手动构建联接。@OblTobl Ok,如果没有解决方案,那么基本上我得到了存储中的内容。谢谢你的回复@解决我的问题。但是我找不到外键表被击中的位置。控制器中的断点永远不会被击中,所以我现在不选择在控制器中设置逻辑。