将SqlEntityConnection类型提供程序仅限制为某些表

时间:2014-04-21 16:18:45

标签: sql f# type-providers entityconnection

我正在为自己编写一个实用程序,它需要能够访问SQL数据库中的一对表。我使用了SqlEntityConnection类型提供程序,并从表中需要的数据作为易于使用的实体获得奖励。

我注意到的一件事是,项目的启动和编译增加了很多。我怀疑这是因为数据库有超过一百个表,它正在编译和获取所有这些数据,而不是我需要的两个。有没有办法将EntityTypeProvider限制为仅引用模式中所需的表?

type private EntityConnection = SqlEntityConnection<ConnectionString="Server=Server;Initial Catalog=Database;Integrated Security=SSPI;MultipleActiveResultSets=true", Pluralize = true>

let private context = EntityConnection.GetDataContext()

1 个答案:

答案 0 :(得分:2)

我自己没试过,但我想你可以在你的项目中添加一个新的“ADO.NET实体数据模型”(edmx)文件,让它从你现有的数据库生成,然后从模型中删除每个表你不想访问你的代码。

EDMX设计器将生成一个* .csdl文件,然后您可以从SqlEntityConnection的LocalSchemaFile参数中引用该文件。您可以使用此参数代替ConnectionString

最终结果是实体提供程序不会自动获取对数据库的更改,但编译时间会下降,只有您关心的表才会显示在您的代码中。

相关问题