我有EF7设置和编译,没有错误,而且我可以知道它正在向服务器发送SELECT命令,但是返回的数据总是为null。
我不使用DI,只在代码中设置EF。
上下文:
public class ApContext : DbContext
{
public DbSet<FirmHdr> FirmHdr { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("Server=azuresql.database.windows.net;Database=psAP;uid=xxxx;pwd=xxxx;");
}
}型号:
public class FirmHdr
{
[Key]
public Guid GID { get; set; }
public DateTime DateModified { get; set; }
public string FirmCode { get; set; }
public string FirmName { get; set; }
public DateTime DateStart { get; set; }
public decimal BaseAmt { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
public string Phone { get; set; }
public string Contact { get; set; }
public string eMail { get; set; }
public string FirmAdmin { get; set; }
public string AdminPassword { get; set; }
}获取方法:
public class ioEF7
{
public List<FirmHdr> GetFirms()
{
using (var db = new ApContext())
{
var firms = from fx in db.FirmHdr orderby fx.FirmName select fx; //db.FirmHdr.ToList();
var lfirms = firms.ToList();
return lfirms;
}
}
}无论我如何尝试,公司总是空的。任何帮助都将不胜感激!
来自Server的跟踪:
SELECT [fx].[GID], [fx].[Address1], [fx].[Address2], [fx].[AdminPassword], [fx].[BaseAmt], [fx].[City], [fx].[Contact], [fx].[DateModified], [fx].[DateStart], [fx].[FirmAdmin], [fx].[FirmCode], [fx].[FirmName], [fx].[Phone], [fx].[State], [fx].[Zip], [fx].[eMail]
FROM [FirmHdr] AS [fx]
ORDER BY [fx].[FirmName]SQL Manager中返回的数据:
7e699f55-167e-41d8-b4d8-97d0ebd44da9 NULL NULL SOBHOST NULL NULL THIS IS A SPECIAL ACCOUNT ONLY FOR HOST ADMINS 2014-11-02 13:25:46 2014-11-02 SOB 0HOST HOST SETUP ACCOUNT NULL NULL NULL NULL
a96af7a2-5cf2-47f2-863c-7dc43bdd6a6a NULL NULL NULL 100.0000 NULL NULL 2014-11-20 21:40:51 2014-11-20 NULL JOHNS JOHNS FIRM PHONE NULL NULL NULL
0094823d-ec85-4259-a094-3162673dcfd9 123 MAIN STREET STE 100 ADMINPASS 100.0000 MOBILE JOHN SMITH 2014-11-01 17:50:57 2014-10-08 ADMIN A456 SMITH & SMITH 251-345-6789 AL 36608 jsmith@smith.com
f607a45d-71bb-4f73-ac49-858471ac67ae NULL NULL PASS NULL NULL NULL 2014-11-10 15:36:30 2014-11-10 ADMIN TESTFIRM TEST FIRM LLC NULL NULL NULL NULL
9d8ec948-35e3-4daf-8523-feeec1252993 ADDRESS 1 ADDRESS 2 SOBPASS 83.3333 CITY CONTACT 2014-11-01 14:21:26 2014-10-30 SOB A123 TEST FIRM NAME 123-456-7890 STATE ZIP CODE email@mydomain.com因此,我可以使用EF发送给服务器的确切SQL语句来获取数据,而不是在我的应用程序中。
发布于 2015-10-05 15:47:50
检查表列类型和POCO类是否匹配。例如,如果BaseAmt的列可以为null,则匹配的CLR类型应该是decimal?而不是decimal。
发布于 2015-10-06 00:01:29
你在钱上是对的!我将其降级为EF6,并在十进制字段中得到一个空错误,所以我更正了模型,现在所有的操作都在进行。在EF7中从来没有收到过这样的信息。
以下是修正后的模型:
public class FirmHdr
{
[Key]
public Guid GID { get; set; }
public DateTime? DateModified { get; set; }
public string FirmCode { get; set; }
public string FirmName { get; set; }
public DateTime? DateStart { get; set; }
public decimal? BaseAmt { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
public string Phone { get; set; }
public string Contact { get; set; }
public string eMail { get; set; }
public string FirmAdmin { get; set; }
public string AdminPassword { get; set; }
}https://stackoverflow.com/questions/32934810
复制相似问题