如何将“数据”与“数据”分开?从我的控制台应用程序?

发布于 2024-10-15 11:51:18 字数 528 浏览 3 评论 0原文

我有两个项目:

  • 控制台应用程序
  • 类库

我希望 类库 定义类、创建 edmx 文件并拥有部分连接字符串,例如:

<add name="BlogEntities" connectionString="metadata=res://*/Blog.csdl|res://*/Blog.ssdl|res://*/Blog.msl;provider=System.Data.SqlClient;provider connection string='{0}'" providerName="System.Data.EntityClient" />

我希望我的类库定义 csdlssdlmsl 文件。我的控制台应用程序不关心元数据,它只会定义数据库用户密码

如何将连接字符串分成两部分?

I have two projects:

  • Console application
  • Class Library

I want the Class library to define the classes, create edmx files and to have a partial connection string, like:

<add name="BlogEntities" connectionString="metadata=res://*/Blog.csdl|res://*/Blog.ssdl|res://*/Blog.msl;provider=System.Data.SqlClient;provider connection string='{0}'" providerName="System.Data.EntityClient" />

I want my Class Library to define the csdl, ssdl and msl files. My Console application doesn't care about the metadata, it will only define the database, user and password.

How can I split the connection string in two like this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

若水微香 2024-10-22 11:51:18

根据我的记忆,如果您在类库中创建模型,VS 将在该库项目中创建一个 app.config 。

只需将此文件的内容合并到控制台库的 app.config 中即可。

在这种情况下,您可以在库的 app.config 文件中拥有“设计”配置,并在控制台应用程序的 app.config 中拥有运行时配置。

from my memory, if you create the model in a class lib, VS will create an app.config in the lib project.

Simply merge the content of this file in the app.config of the console library.

in this scenario, you can have a "design" config in the app.config file of the lib, and a run time config in the app.config of the console application.

南汐寒笙箫 2024-10-22 11:51:18

在您的库中创建一个类(例如Connector),允许您提供所需的任何连接值(数据库、用户、密码)。然后在控制台应用程序中使用此类并提供您认为合适的必要值。

Create a class in your library (e.g. Connector) that allows you to provide whatever connection values you will need (database, user, password). Then use this class in your console application and provide the necessary values however you see fit.

陌上芳菲 2024-10-22 11:51:18

我发现我可以用相同的名称命名所有实体,例如Entities。我的 app.config 需要位于控制台应用程序上,但我可以使用单个 ConnectionString

<add name="Entities" connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQLExpress;Initial Catalog=Test;Persist Security Info=True;User ID=test;Password=test;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />

元数据可以设置为 res://*/ 并且它将在全球范围内工作。 来自 MSDN:

使用的模型和映射元数据
实体框架被加载到
元数据工作区。该元数据是
全局缓存并可供
ObjectContext 中的其他实例
相同的应用程序域。

我还可以强制任何可插入模块都使用在上下文构造函数上传递的 ConnectionString

new Blogs.Data.Entities("name=Entities");

I found out that I can name all entities with the same name, e.g. Entities. My app.config will need to be on the Console Application, but I can use a single ConnectionString.

<add name="Entities" connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQLExpress;Initial Catalog=Test;Persist Security Info=True;User ID=test;Password=test;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />

The metadata can be set to res://*/ and it will work globally. From MSDN:

Model and mapping metadata used by the
Entity Framework is loaded into a
MetadataWorkspace. This metadata is
cached globally and is available to
other instances of ObjectContext in
the same application domain.

I can also force that any plug-able module will use a ConnectionString passing on the context constructor:

new Blogs.Data.Entities("name=Entities");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文