Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架5代码优先单元测试_C#_Entity Framework_Unit Testing - Fatal编程技术网

C# 实体框架5代码优先单元测试

C# 实体框架5代码优先单元测试,c#,entity-framework,unit-testing,C#,Entity Framework,Unit Testing,我首先使用的是c#entity framework 5代码 在我开始对代码进行单元测试之前,一切都进展顺利,我认为它们与数据库迁移有关 无论我尝试什么,实体要么抱怨数据库模型现在不同了(事实并非如此),要么抱怨找不到某些对象/模型 我使用表属性映射模型,而单元测试似乎忽略了这一事实,并试图使用原始模型名而不是我给出的表名来构造sql 结果消息: 试验方法:所有威尔士试验、播种试验、县试验、种子试验 异常:System.Data.SqlClient.SqlException:找不到对象 因为它不存

我首先使用的是c#entity framework 5代码

在我开始对代码进行单元测试之前,一切都进展顺利,我认为它们与数据库迁移有关

无论我尝试什么,实体要么抱怨数据库模型现在不同了(事实并非如此),要么抱怨找不到某些对象/模型

我使用表属性映射模型,而单元测试似乎忽略了这一事实,并试图使用原始模型名而不是我给出的表名来构造sql

结果消息:

试验方法:所有威尔士试验、播种试验、县试验、种子试验 异常:System.Data.SqlClient.SqlException:找不到对象 因为它不存在或者您没有 权限

调节模型是原始类名,但我使用的是表属性:

[Table("Accommodations")]
public class AccommodationModel
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public string Id { get; set; }

    public string PropertyReference { get; set; }
    public string Name { get; set; }
等 等

我的数据库上下文

public class AllWalesDbContext : DbContext
{
    static AllWalesDbContext()
    {
        Database.SetInitializer(new MigrateDatabaseToLatestVersion<AllWalesDbContext, Configuration>());
    }

    public AllWalesDbContext():base("AllWalesDbContext") {}

几天来,我一直在这上面碰壁。

你的单元测试项目有正确的连接字符串吗?我的主项目有一个连接字符串。我还没有在测试项目中单独设置一个。我需要吗?试试看。你会惊讶的!好的,格特。这让我找到了解决办法。我需要复制角色和提供者、连接字符串以及添加缺少的引用的一系列设置。:-)
    static AllWalesDbContext()
    {
        Database.SetInitializer<AllWalesDbContext>(null);
    }
[TestClass()]
public class Seeding_test
{
    [TestMethod()]
    public void Test_County_Seed_is_22()
    {

        int expected = 22;
        int actual = 0;

        using (var context = new AllWalesDbContext())
        {
            actual = context.County.Count();
        }
        Assert.AreEqual(expected, actual);
    }
}