【问题标题】:LINQ query returns nulll on non-nullable fieldLINQ 查询在不可为空的字段上返回 null
【发布时间】:2017-08-28 09:39:10
【问题描述】:

在我的代码中,我一直在使用 Linq 来访问我的数据库中的数据,但是有一个表不起作用。此表有几个字段:

ID => string, not nullable
Name => string, not nullable
Date => DateTime, not nullable
UserID => string, not nullable.

当我使用查询尝试获取这些数据时,我的每个字段都会返回正确的数据,除了一个:UserID,它总是会返回 null,不管里面有什么。

这是我的查询:

using(ProgetEntities pg = ProgetEntities()){
   List<Alloc> ListAlloc = new List<Alloc>();
   ListAlloc = pg.Allocations.ToList();
}

Alloc 有我的属性:

public partial class Alloc
{
    public string ID { get; set; }
    public string Name { get; set; }
    public Nullable<System.DateTime> Date { get; set; }
    public string UserID { get; set; }
}

我曾尝试在查询中使用 AsEnumerable,但结果相同。

以前有没有人遇到过这种问题?还有其他人知道我该如何解决这个问题吗?

编辑

通过查看查询,我发现了问题(我不知道为什么我没有早点查看),有查询(来自调试器):

pg.Alloc    {SELECT 
[Extent1].[ID] AS [ID], 
[Extent1].[NAME] AS [NAME], 
[Extent1].[DATE] AS [DATE], 
FROM [dbo].[Alloc] AS [Extent1]}    
System.Data.Entity.DbSet<ClassGetMS.Models.Alloc>

我的查询似乎不包括 UserID 字段。

【问题讨论】:

  • List&lt;Alloc&gt; ListAlloc = new List&lt;Alloc&gt;(); ListAllocations = pg.Allocations.ToList(); 你不应该将ToList 分配给ListAlloc 而不是ListAllocations 吗?这有什么帮助吗?
  • 我的错误在输入代码时打错了,会修复那个srry
  • 在您的数据库中,您的UserID 是什么数据类型?是整数吗?
  • 数据库中的字段不可为空这一事实并不意味着该字段的类型也不可为空。特别是字符串总是 可以为空。无论如何,如果没有您的数据示例以及如何检索它,就无法为您提供帮助。
  • 在我的数据库中,用户 ID 是一个字符串,我同意字符串始终可以为空,但它没有解释为什么无论字段中的内容为何它都会返回 null。

标签: c# mysql linq


【解决方案1】:

答案很简单,属性没有正确映射,所以我进入 .edmx 模型,并手动添加它,现在一切正常。

【讨论】:

    猜你喜欢
    • 2019-05-28
    • 2018-03-05
    • 2021-08-06
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 2021-03-23
    • 2021-11-27
    • 2021-10-24
    相关资源
    最近更新 更多