我需要构建一个GUI来查询数据库,我选择使用Entity Framework和数据库优先方法。
我认为该数据库的布局存在缺陷,我想知道在ef模型中(以及如何)纠正该错误的选择是什么。
数据库如下:
CREATE TABLE a (
idA int
)
CREATE TABLE b (
idB int
)
CREATE TABLE c (
idC int,
fkA int,
fkB int
)
我看到的设计问题是B中的项不会单独退出,它们始终与A相关。下表更有意义:
CREATE TABLE a (
idA int
)
CREATE TABLE b (
idB int,
fkA int,
)
CREATE TABLE c (
idC int,
fkB int
)
用文字将c设置为独立于a和b的子代,而实际上b始终是a的子代,而c是b的子代(也就是a的子代)。
如果有可能,我将如何修改生成的模型以进行更改?显然,使用Visual Studio和EDMX模型编辑器,但是需要对模型进行哪些更改,以便仍然加载错误的数据库布局,但将更正的模型提供给GUI?
GUI将仅读取数据,无需随时写入任何内容。
谢谢!
答案 0 :(得分:2)
如果要将更改应用于数据库,则除了只读访问权限以外,还需要更多。进行更改并将其保存在数据库中后,您可以更新模型。
如果您使用的是Ado.net edmx文件,则更新很容易。选择.edmx文件,然后选择update model
,从数据库中选择相关表,然后遵循其余的GUI。
如果需要从程序包管理器控制台或dotnet控制台进行操作。使用here中的教程是明智的。
从OP更新
有可能,但可能导致许多不良副作用。 从数据库中获取对象时,应将它们装箱到代表新需要的结构的新对象中。另一种方法是更改模型,您需要将属性添加到给定的类。警告您的代码将遭受很多副作用。