Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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
Sql server EF5如何添加缺少的关系_Sql Server_Asp.net Mvc_Entity Framework - Fatal编程技术网

Sql server EF5如何添加缺少的关系

Sql server EF5如何添加缺少的关系,sql-server,asp.net-mvc,entity-framework,Sql Server,Asp.net Mvc,Entity Framework,嗨,我已经定义了一个数据库第一个EF5模型。 我的用户表具有主键guid UserGUID 和另一个具有自动递增整数的关键字段UserID。 我创建了一个名为UserCustomField的表,该表 UserID和我已经在我的用户表中为UserID创建了一个外键约束 当我从数据库更新模型时,所有外键与主键的关系都会生成,但与键字段的关系不会生成。忽略有关在“我的所有表”中使用guid的潜在点。。。。。 A/EF不应该添加此关系吗? B/我如何手动添加它 干杯 蒂姆:没有。 B:你不能 EF只能在

嗨,我已经定义了一个数据库第一个EF5模型。 我的用户表具有主键guid UserGUID 和另一个具有自动递增整数的关键字段UserID。 我创建了一个名为UserCustomField的表,该表 UserID和我已经在我的用户表中为UserID创建了一个外键约束

当我从数据库更新模型时,所有外键与主键的关系都会生成,但与键字段的关系不会生成。忽略有关在“我的所有表”中使用guid的潜在点。。。。。 A/EF不应该添加此关系吗? B/我如何手动添加它

干杯 蒂姆:没有。 B:你不能

EF只能在关系指向主键时使用关系,因此可以将
User
表更改为使用
UserID
作为主键,并删除
UserGuid
或将
UserCustomField
表更改为指向
User
表中的
UserID


它不起作用的原因是,您的数据库要求将
User
表中的
UserID
标记为唯一(这意味着唯一约束),并且EF还不支持唯一约束。

我是否不可能将自己的属性至少添加到用户对象中,这样我就可以执行foreach的等效操作(myUser.UserCustomerFields()中的UserCustomField项)如果您不修改您的模型以在EDMX中创建关系,您将不得不在新属性后面隐藏您自己的Linq查询和手动连接。这将使您的用户实体依赖于EF的上下文实例。抱歉,Ladislav,我无法了解您在评论中传达的内容。您是说这不可取吗?我看不到明显的p在我的用户对象上添加方法或属性,因为EF似乎填充了不了解上下文的类。