我的环境:
VS2010
Sql Server Express
==============================================
我把例子文件下的数据库文件northwind.mdf附加到sqlserver Express,数据库名称为“e:\aspNetApp\****\****\northwind.mdf”,我把它修改为"Northwind"。我在工程里点右键,添加了一个“ADO.net 实体数据模型”新建项,文件名定义
为northwind.edmx,选择添加,并选择从数据库生成,实体连接字符串如下:
metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="Data Source=MYPC\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True"
之后,添加了所有的表、视图和存储过程。
然后我在模型视图里“添加”->“实体”,新建了一个名为Student实体。
最后,希望该实体能同步到数据库中去。
我的操作如下:
在edmx文件视图下,右键选“根据模型生成数据库”,结果弹出“生成数据库向导”对话框,点完成。
之后会打开一个叫northwind.edmx.sql的文件,我右键点击“执行SQL”,之后弹出连接数据库对话框,我点击确定。结果,edmx模型中的那些“视图”,居然以表的形式,被新建到了northwind数据库中。
例如:
northwind数据库中有个视图,名为“Alphabetical list of products”。
建立edmx时,其被实体化为“Alphabetical_list_of_product”,然而我执行
了northwind.edmx.sql之后,northwind数据库中,会生成我新建的Student表,
但是也新建了一个名为Alphabetical_list_of_product的新表。估计是我哪里理解出了问题,或是我哪里操作错了?
正确的操作流程是什么?我该如何理解实体模型里那个“根据模型生成数据库”这个操作呢??
还望高人能指点一下啊!谢了!