Entity Framework returns 零个结果
Entity Framework returns zero results
我首先使用实体框架代码创建了一个数据库,并在 table 中植入了 4 列(参见屏幕截图)。
现在我想从联系人 table 中检索所有联系人,但收到的结果为零。
如果我通过管理工作室(也在屏幕截图中)从 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#class
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 是对的,我看错了数据库。
我首先使用实体框架代码创建了一个数据库,并在 table 中植入了 4 列(参见屏幕截图)。 现在我想从联系人 table 中检索所有联系人,但收到的结果为零。 如果我通过管理工作室(也在屏幕截图中)从 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#class
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 是对的,我看错了数据库。