我正在为自己编写一个实用程序,它需要能够访问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()
答案 0 :(得分:2)
我自己没试过,但我想你可以在你的项目中添加一个新的“ADO.NET实体数据模型”(edmx)文件,让它从你现有的数据库生成,然后从模型中删除每个表你不想访问你的代码。
EDMX设计器将生成一个* .csdl文件,然后您可以从SqlEntityConnection的LocalSchemaFile
参数中引用该文件。您可以使用此参数代替ConnectionString
。
最终结果是实体提供程序不会自动获取对数据库的更改,但编译时间会下降,只有您关心的表才会显示在您的代码中。