实体框架数据库首先进行集成测试

时间:2014-01-03 01:01:21

标签: sql-server entity-framework testing sql-server-ce integration-testing

我最近一直围绕着UnitOfWork和Repository模式。我终于想出了一个适合我案例的解决方案,很棒。现在我想在我的应用程序中添加一些测试,以确保我的存储库按预期执行。在阅读并重读了关于这个主题的多篇文章之后,我得出的结论是,我想使用SQL Server CE为我的测试伪造数据库,至少从一开始,我可以测试Linq-to-Entities查询。

我已经为我的测试项目设置了app.config:

<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
        <parameters>
            <parameter value="System.Data.SqlServerCe.4.0" />
                    </parameters>
            </defaultConnectionFactory>
            <providers>
                <provider invariantName="System.Data.SqlServerCe.4.0" 
                    type="System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact" />

但是,当我尝试在我的测试设置中创建数据库时,我得到一个例外:

Proj1.Test.Persistence.Product: : EntityType 'Product' has no key defined. Define the key for this EntityType.

我认为这是因为模型上没有属性,说哪个值是关键,因为我使用数据库第一种方法。

我已经阅读了几个与此相关的SO问题,但似乎没有一个问题符合我的要求。所以我的问题是,是否可以配置SQL CE来为测试创建数据库,即使我的模型是数据库优先?

0 个答案:

没有答案