我首先创建了带有实体框架代码的数据库,并在表中播种了4列(请参见屏幕截图)。现在,我想从联系人表中检索所有联系人,但收到零结果。如果我通过Management Studio(同样在屏幕截图中)从ef执行生成的sql,则效果很好。我写了一些测试代码,但连接似乎也很好。我不知道该看哪里了。
public class ContactDataService : IContactDataService
{
public IEnumerable<Contact> GetAll()
{
using (var ctx = new ContactOrganizerDbContext())
{
List<Contact> contacts = ctx.Contacts.AsNoTracking().ToList();
//returns true
bool isValid = ctx.Database.Exists();
//returns also true
bool canOpenClose = canConnectionOpenedAndClosed(ctx);
return contacts;
}
}
private bool canConnectionOpenedAndClosed(ContactOrganizerDbContext ctx)
{
try
{
ctx.Database.Connection.Open();
ctx.Database.Connection.Close();
}
catch (SqlException)
{
return false;
}
return true;
}
}
// C#类
public class Contact
{
public int Id { get; set; }
[Required]
[StringLength(50)]
public string FirstName { get; set; }
[StringLength(50)]
public string LastName { get; set; }
[StringLength(50)]
public string Email { get; set; }
}
好吧,entityframework在两个不同的服务器上创建了相同的数据库。所以Arman Ebrahimpour和jdweng是对的,我在看错误的数据库。