C# 是否可以使用实体框架并将对象关系保留在代码中,而不保留在数据库中
我很难确定自己的处境,所以请耐心等待。要么是我遇到了一个没有人在博客上谈论的情况,要么是我对这些概念缺乏理解,在我的头脑中制造了一个问题 我有一个数据库,这是一个混乱的东西,数据库所有者希望保持这种方式。我所说的混乱是指它没有规范化,没有定义关系,尽管它们确实存在 我想使用EF,我想通过减少数据库调用来优化我的代码 作为一个简化的示例,我有两个表,没有这样设置的关系: 表:人类 HumanId、HumanName、FavoriteFoodId、LeastFavoriteFoodId、LastFoodEatenId 表:食物 FoodId、FoodName、FoodProperty 1、FoodProperty 2 我想编写一个EF数据库调用,它将为每个相关的食物项返回一个human和一个full对象 首先,有可能做到这一点吗 第二,如何C# 是否可以使用实体框架并将对象关系保留在代码中,而不保留在数据库中,c#,sql-server,entity-framework,C#,Sql Server,Entity Framework,我很难确定自己的处境,所以请耐心等待。要么是我遇到了一个没有人在博客上谈论的情况,要么是我对这些概念缺乏理解,在我的头脑中制造了一个问题 我有一个数据库,这是一个混乱的东西,数据库所有者希望保持这种方式。我所说的混乱是指它没有规范化,没有定义关系,尽管它们确实存在 我想使用EF,我想通过减少数据库调用来优化我的代码 作为一个简化的示例,我有两个表,没有这样设置的关系: 表:人类 HumanId、HumanName、FavoriteFoodId、LeastFavoriteFoodId、LastFo
无聊的背景信息:一位超级sql开发人员编写了一个查询,在20毫秒内返回21个表,其中总共包含1401列。这将变成一个xml文档,供前端开发人员绑定。我想改变我们使用对象的技术,从而减少从字段到xml的手工编码和映射(更不用说处理空字符串和空字符串等),并创建一个类型安全的编译时环境。很遗憾,我们不允许更改数据库或添加关系 如果我理解您的意思是正确的,您最好使用:
是的,您可以在一次调用中选择所有相关信息。您可以使用实体框架定义代码中的关系。在您的情况下,您可以手动定义实体,或者使用工具从现有数据库对EF模型进行反向工程。visualstudio内置了一些对这一功能的支持,并且有类似的VS扩展提供了这一功能
至于使用EF对数据库进行一次调用,您可能需要创建一个存储过程或一个视图来返回所需的所有信息。使用启用延迟加载的标准设置,EF将调用数据库并根据需要填充数据。我担心一旦我进行更改,EF可能会尝试更新连接的数据库。如何确保我的代码不会修改我的数据库?@adamheg,你只需要使用默认的数据库初始值设定项,你的代码就不会修改数据库