Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.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# 首先在POCO和实体框架代码中将属性标记为唯一_C#_Asp.net Mvc_Entity Framework - Fatal编程技术网

C# 首先在POCO和实体框架代码中将属性标记为唯一

C# 首先在POCO和实体框架代码中将属性标记为唯一,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我需要创建一个具有多个唯一字段的POCO。我用Key标记了典型的实体Id字段。但我有另一个名为StudentId的字段,它是string类型,并且也需要是唯一的。对包括Id在内的多个字段使用[Key]属性会引发错误。我找不到任何其他的属性来完成这项工作。请帮助我,谢谢。您是否尝试过在CreateIndex方法中执行此操作 CreateIndex(table: "Students", column: "Name", unique: true, // unique

我需要创建一个具有多个唯一字段的POCO。我用Key标记了典型的实体Id字段。但我有另一个名为StudentId的字段,它是string类型,并且也需要是唯一的。对包括Id在内的多个字段使用[Key]属性会引发错误。我找不到任何其他的属性来完成这项工作。请帮助我,谢谢。

您是否尝试过在
CreateIndex
方法中执行此操作

CreateIndex(table: "Students", 
        column: "Name", 
        unique: true, // unique index
        name: "StudentIndex");
您也可以使用
ExecuteStoreCommand

context.ObjectContext.ExecuteStoreCommand("CREATE UNIQUE CONSTRAINT...");

谢谢,我只是认为有一个属性可以处理这个问题。@RueLeonheart没有,但是你可以表示支持在下一个版本中添加它,因为我现在没有时间查看,但是我相信应该有一种方法连接你自己的属性并称之为
[IndexAttribute]
可以触发
CreateIndex
命令。或者更清晰的属性可能是
[CreateIndex]
public void CreateIndexAttribute(..){..}
有关如何使用数据注释将列标记为唯一的信息,请参阅。