日期:2014-05-18  浏览次数:20460 次

entity framework的code first模式创建的数据库使用数据库账户登录的问题
最近尝试code first。
code first创建的数据库好像都是采用windows身份验证登录的,在connectionStrings中写上uid和pwd也没效果,网上所有ef code first的教程connectionStrings里都是没写用户名和密码的。sql server监测看到是entity framework登录的数据库。
而且尝试在数据库自动创建后,再到sql server里增加一个用户,connectionStrings里也添加用户名和密码,还是不行,没有使用建立的用户登录。
如果最终开发完毕,把数据库移植到服务器上,总得要建个数据库的登录账号吧,不能采用系统账号登录吧,人家也不让啊。这个怎么办。
现在也确实有点问题,采用vs的服务器运行网站没问题,采用iis运行就说数据库无法登录,要将应用程序池的标识改成localsystem,原来db first设计模式不需要这样的。

是ef就是采用ef自己账号登录数据库,还是其他什么原因,现在有点搞不明白了

------解决方案--------------------
链接字符串和orm有啥关系

public Context()
: base(CONNECTION_STRING)
CONNECTION_STRING你可以自己定啊
------解决方案--------------------
探讨

public Context()
: base(CONNECTION_STRING)
这个里面的CONNECTION_STRING比如写成:"Data Source=.;Initial Catalog=ABC;User ID=aaa;Password=aaa;"
数据库可以自动建,但仍然不是用的我写的用户名和密码。
检测显示还是entityframeworkmue是applicat……

------解决方案--------------------
我也遇到过这样的问题,http://blog.csdn.net/guhuojingling/article/details/7266638
希望能帮到你
------解决方案--------------------
推荐你把连接串放在app.config里,就象通常我们使用连接串是一样的。由于Code-First有许多的命名约定,所以你的连接串也需要按照一定的方式命名。

一种方法:在app.config里定义的连接串,使用一个与你的DbContext派生类同名的连接名。
假设DingrainContext派生自DbContext,则定义如下的一个串,这样EF在加载时,会自动寻找该连接串。
XML code
 <connectionStrings>
    <add name="DingrainContext"
         connectionString="Data Source=xxx\SQL_Instance;Database=Jimmy;Integrated Security=True"
         providerName="System.Data.SqlClient"/>
  </connectionStrings>