1

我正在为自己编写一个实用程序,它需要能够访问 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()
4

1 回答 1

2

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

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

最终结果是实体提供程序不会自动获取对数据库的更改,但编译时间会减少,并且只有您关心的表对您的代码可见。

于 2014-04-21T18:33:46.553 回答