大约两年前,我确实在 ADO.NET Entity Framework v2 上工作过。我有淡淡的记忆。
顺便说一句,我碰巧在一个非常安全(为了委婉说法)的环境中工作,其中许多链接被阻止并且无能为力。它确实妨碍了学习和工作,不止一点。
因此,我必须依靠这个论坛来解决一些我必须重新开始的基本问题。这一次,我正在研究 Entity Framework 4。这是我的问题。
所有这些问题都与EDM 生成的实体有关,即与 Code First模型无关。
1)我的理解正确吗?我可以在 EDM 设计器生成的模型中重命名任何列名,并且没有任何中断。
2) 外键在生成的实体类中表示为导航属性。维护外键关系不需要特殊考虑。我记得在 EF 版本 1 中,您只有 ID 属性,并且在版本 2 中引入了导航 IQueryable/IEnumerable/EntityCollection/RelatedEnd 属性。我只需要知道我是否需要做任何事情来保留/维护外键关系和引用数据的完整性。我想我不需要。确认会很好。
3) 执行存储过程的所有可能方式是什么?我记得——在 Context.Database 对象上使用 ExecuteSQL 或其他东西的一种方法,另一种使用 EntityClient API 的方法,第三种是在 EDM 设计器的映射窗口中的 InsertCommand、SelectCommand 等事物中指定存储过程名称。它是否正确?
4) 你如何在实体的映射窗口中使用那些 SelectCommand 东西?您是否只提供存储过程或用户定义的 SQL 函数的名称?
5) 如何从表的子集创建实体?我是否只是从表中创建一个实体,然后从设计器中删除我不需要的列?如果需要的值(SQL 中为非空)不在我选择的子集中,会发生什么情况?
6) 如何从两个或多个表的查询或连接中创建表。