database-first Entity Framework 模型的变化

Changes to a database-first Entity Framework model

我需要构建一个 GUI 来查询数据库,我选择使用 Entity Framework 和 database-first 方法。

在我看来,数据库的布局存在缺陷,我想知道在 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的achild,而实际上b永远是a的achild,c是achild 的 b(以及因此的 a)。

如果可能的话,我将如何修改生成的模型来改变它?显然,使用 Visual Studio 和 EDMX 模型编辑器,但是需要对模型进行哪些更改,以便仍然加载错误的数据库布局,但向 GUI 提供更正的布局?

GUI只会读取数据,不需要随时写入任何东西。

谢谢!

如果您想将更改应用于数据库,您需要的不仅仅是只读访问权限。当更改完成并保存在数据库中时,您可以更新模型。

如果您使用的是 Ado.net edmx 文件,更新很容易。 Select .edmx 文件和 select update model、select 数据库中的相关表格以及 GUI 的其余部分。

如果您需要来自包管理器控制台或 dotnet 控制台的内容。使用来自 here.

的教程是明智的

更新自 OP

这是可能的,但它可能会导致许多不需要的 side-effects。 当您从数据库中获取对象时,您应该将它们装箱到代表新需要的结构的新对象中。另一种方法是更改​​模型,您需要向给定的 类 添加属性。请注意,您的代码会有很多副作用。