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