【发布时间】:2014-02-25 21:04:30
【问题描述】:
我的上下文是这样的:Using Razor to create a form for hierarchy of domain models
我有一个类 Project 和一个名为 Projects 的数据库中的表。
在这个表中有一个名为AddressID的列...它与另一个地址表相关。
一个地址由几个属性组成...地址1、地址2、城市、国家、州。我已将它们映射到 Address 类中,以便与地址表相关。
项目因此通过 AddressID... 一个整数与 Address 表相关。
在我的项目课程中,出于某种原因,我认为我可以做到这一点:
class Project
{
Address Address;
}
然后我意识到,当我去获取一个项目时 - 一个 int 列地址 ID(项目关系列) - 它会尝试映射到项目的地址属性并说出类似“不兼容的类型”之类的内容......我需要更多这样的东西吗?
class Project
{
int AddressID {get;set;}
Address Address {get;set;}
}
然后,当我从我的项目存储库中调用一些项目时,我会使用 AddressID(从数据库映射)将整个地址映射到地址属性,以提供足够的信息来在数据库中找到地址?
这类事情的常用技术是什么?
【问题讨论】:
-
为什么不从数据库生成模型?
-
数据库人员已经创建了数据库...我认为这可能是最安全的选择?它也已被另一个应用程序使用。
-
如果其他项目也是 .NET EF 项目,您可以引用该项目(DLL 文件)并使用模型。
-
如果数据库已经存在,那就省去麻烦,在 Database-First 方法中使用 EntityFramework!您可以调整生成的模型,并根据需要重命名/重塑实体,但第一个生成的模型将完全可用。如果在 db 中正确定义了主键和外键,那么您的模型将正确地具有从
Project到Address的导航属性。 -
有趣,我将首先阅读所有关于这个数据库的信息...至于 .net 中的其他项目...不,它在 Lotus Scrotes(Notes)
...它访问相同的数据库。
标签: c# entity-framework asp.net-mvc-5