日期:2014-05-17  浏览次数:20473 次

ADO.NET Entity Framework 求教(极度困惑)
本人初学 Entity Framework,望指点。
最近我在看ADO.NET Entity Framework,英文文档看不懂,中文的资料不是很全,忘大神指点1,2.

困惑1:根据ADO.NET 实体数据模型 创建模型时,是一次性勾选所有的表,视图,和存储过程吗?还是分类别分别创建。   盼指点

困惑2:假设分类别创建模型,或者说一张表(或关联表一起)创建一个模型,一个庞大的项目会创建N个模型,而创建时会在web.confing自动生成一个连接字符串,假设有5000个模型,web.confing不是要撑上天吗?盼指点

困惑3:假设在创建时选择如下,


此时,后台该如何设置连接字符串呢,(web.config如何设置一个通用的连接字符串呢?),我看自动生成的edmx文件的类,有3个构造函数,
public Entities() : base("name=Entities", "Entities")
public Entities(string connectionString) : base(connectionString, "Entities")
 public Entities(EntityConnection connection) : base(connection, "Entities")
我分别传这些参数进去,发现均不能从数据库中取数据,报错。

盼指点

问题可能有些小白,望指点1 2,我就像配置一个如asp.net中的一个简单的连接字符串,让所有的模型都能用这个字符串,这不挺好吗。
Entity?Framework ADO.NET

------解决方案--------------------
(1)根据需要,没把握就都选上。
(2)相同的连接字符串只要1个就可以了。一般一个数据库一个。
(3)在模型视图上,属性列表中可以选择连接字符串和配置文件中的哪个绑定。
------解决方案--------------------
设置一个既可,不需要什么“分类别创建”。你用的就选上。如果暂时没有发现要用,以后才发现要用的,那么就再次打开设置窗口选上新的。

web.config会自动记录自动生成的字符串。如果你一定要修改源代码,那么你应该找到人家读取web.config的源代码。绝不是在找不到这个代码的情况下胡乱去调用初始化方法。

对于自动代码生成的代码,最好不要去修改源代码。否则你会“死得很惨”,因为你纠结到“我到底还要不要修改设计呢”里边拔不出来了“。如果修改设计,那么你原来对人家自动生成的源代码的修改全都被人家自动覆盖、而丢弃了;如果不修改设计,那么搞这个开发就是“废物”。

因此实际上我们在可能时候,应该尽量少用“代码生成器”式的东西。少用 Entity Framework。即使它是微软开发的。我们使用它,仅仅是一开始给业余开发员练手、“了解一下”的时候才用。
------解决方案--------------------
引用:
困惑2:假设分类别创建模型,或者说一张表(或关联表一起)创建一个模型,一个庞大的项目会创建N个模型,而创建时会在web.confing自动生成一个连接字符串,

你们是习惯于一个数据库表就创建一遍关系数据库吗?

根本不用再讨论这种想法。