建立Odata时不使用LocalDB,用自己的数据库
一、开发软件版本:vs2015,SQLServer2014,EF6.0,OData4.0
二、问题描述:webAPI建立OData实例,在用EF连接数据库时总默认用LocalDB,想改为自己的SQLServer服务器。
三、解决办法
参考网页:
1.
Create an OData v4 Endpoint Using ASP.NET Web API 2.2
(这是OData4.0的帮助,但其他版本也能照着做)
https://docs.microsoft.com/en-us/aspnet/web-api/overview/odata-support-in-aspnet-web-api/odata-v4/create-an-odata-v4-endpoint
说明:如果按照步骤一点不变的做下去,使用的是LocalDB的数据库,在远程发布时可能会有问题。为了改成一个完备的SQLServer上的数据库,需要在Web.config文件中改写数据库的连接字符串,指明需要的数据库。
原文如下:
在我的工程中改为了:
<add name="ProductsContext"
connectionString="Data Source=PC201509211304;
Integrated Security=True;Connect Timeout=15;Encrypt=False;
TrustServerCertificate=True;ApplicationIntent=ReadWrite;
Initial Catalog=ProductsContext;
MultipleActiveResultSets=True;
AttachDbFilename=|DataDirectory|ProductsContext.mdf"
providerName="System.Data.SqlClient" />
Integrated Security=True;Connect Timeout=15;Encrypt=False;
TrustServerCertificate=True;ApplicationIntent=ReadWrite;
Initial Catalog=ProductsContext;
MultipleActiveResultSets=True;
AttachDbFilename=|DataDirectory|ProductsContext.mdf"
providerName="System.Data.SqlClient" />
2.
Creating an OData v3 Endpoint with Web API 2(这是OData3.0的帮助,可参考seed数据库部分)
https://docs.microsoft.com/en-us/aspnet/web-api/overview/odata-support-in-aspnet-web-api/odata-v3/creating-an-odata-endpoint
注意:要在初始化数据库之前就写好服务器的配置(“connectionString”部分),然后再Seed数据库,否则建立了模型和表后,再改就不好用了。