当我在数据库中添加一列时,我需要在什么条件下更新我的EDMX?

时间:2014-09-14 01:44:04

标签: entity-framework

当我在数据库中添加一列时,我需要在什么条件下更新我的EDMX?

详细说明:

我知道如果我添加一个不可为空的字段,我需要更新模型,如果我想写入数据库。如果我想阅读怎么办?

如果它是一个可以为空的字段怎么办?我可以读写吗?

如果我将主键更改为新列但是edmx仍将旧列作为主列,该怎么办?

1 个答案:

答案 0 :(得分:3)

1)如果要移植旧数据库,则需要确保数据库中的每个表都必须具有主键。这是创建EDMX的唯一要求。

2)如果您在数据库端的表中添加了一列,并且没有更新edmx,那么您将无法通过EntityFramework使用该列。

如果创建一个没有默认值的非可空列,则插入操作将失败,异常为“无法将null插入列,语句终止”。除非您更新edmx,否则您将无法使用entityframeowrk读取该列的值。

3)如果您在数据库端更改了任何表的主键,并且如果edmx不知道这一点,则在使用该表执行操作时,您的应用程序可能会创建运行时异常。

请记住,实体框架根据其对数据库的知识(在EDMX中定义)创建SQL查询。因此,如果EDMX不正确,那么生成的SQL查询可能会在运行时导致问题。