我是使用Entity Framework的ASP.NET MVC 3的新手,我已经围绕这个主题购买了几本书,并在很多网站上对此进行了研究。但是,仍有一些问题没有得到回答或不清楚。书中的大多数示例和网站上的教程都没有涵盖端到端场景,它们涵盖了一种基本方法。
以下几个方面我不太清楚:
使用规范化架构创建数据库第一种方法时。这如何转化为课程?我采取的步骤是1)创建表,然后我添加了一个ADO.NET实体数据模型。从这里开始,我选择从数据库生成数据模型。还没有问题,所有表都是作为类生成的。从那里,我通过右键单击上下文菜单选择“添加代码生成项”。然后我选择添加ADO.NET DbContext Generator。这为我的模型创建了类等。从这里我应该手动编辑类文件以产生1对多的关系?
使用我生成的类(参见#1),我可以操作它们以确保我可以在属性设置中添加逻辑(即设置属性,我的代码带有if语句,如果确实它也会更新次要值。例如if(myVar!=“”){myChangeVar = currentDate;)
我可以在具有Entity Framework的表中使用多个类吗?几乎创造了不同的观点......
由于
答案 0 :(得分:0)
您永远不会手动修改任何自动生成的代码 - 这是使用代码生成器的关键。对EDMX的任何更改都将删除生成代码中的所有更改,因为生成工具的工作方式很简单:删除整个文件内容并创建一个新文件。
如果您需要在生成的类中直接使用任何特殊代码,则必须
您还可能需要一些与某个类或某些属性相关的特定代码。在这种情况下:
答案 1 :(得分:0)
您不会像Ladislav所说的那样手动编辑生成的类。而是编辑EDMX文件。 edmx包含三个独立的部分。数据库描述,模型描述以及它们之间的映射。
但你特别想创建1-many关系?如果数据库中有外键约束,则EDMX应该已包含导航属性。如果不是这种情况,您可以手动在实体之间添加关联,指定关系的两端并设置关系的基数。
如果使用普通代码生成器(而不是dbContext的代码生成器),您将看到为PropertyChanging和PropertyChanged创建了许多“部分方法”。如果你想要做的只是在类中设置另一个值,你可以将这些部分方法添加到你自己的T4模板中,并在另一个代码文件中实现它们(在生成代码时不会被覆盖)。
如果您正在谈论继承,则可以将多个类添加到一个数据库表中。通过使用鉴别器列,您可以将多个实体映射到一个表。