asp.net - LINQ 查询中的默认值

标签 asp.net linq

我的 MVC3 应用程序中有以下 Linq 查询/函数。

public AuditTrail GetNamesAddressesEmployers(long registryId , int changedField) {
    var otherNameAndAddress = (from a in context.AuditTrails
                               where a.ChangedField == changedField
                                  && a.RegistryId == registryId
                               select a).FirstOrDefault();
    return otherNameAndAddress;   
} 

我希望如果 otherNameAndAddress = null 那么它的属性应该被分配一些值。

otherNameAndAddress 具有 Name 和 description 属性。这个 GetNamesAddressesEmployers 正在 3 个地方使用。当 otherNameAndAddress = null 在所有三个位置时,我想为 name 和 description 分配不同的值。

最佳答案

您已经在使用 FirstOrDefault() 那么为什么不指定默认值:

public AuditTrail GetNamesAddressesEmployers(long registryId, int changedField)
{
    return context.AuditTrails            
        .Where(a => a.ChangedField == changedField 
             && a.RegistryId == registryId)
        .DefaultIfEmpty(new AuditTrail { /* fill properties here */ })
        .FirstOrDefault();
}

关于asp.net - LINQ 查询中的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6048159/

相关文章:

c# - 如何在同一操作中添加范围后删除范围

.net - Linq to Entities - SQL "IN"子句

c# - 如何在不同(但兼容)模型之间转换 lambda 表达式?

c# - 使用 List<Cars> 的下拉列表的 MVC 助手

asp.net - 在 ASP.NET 中为基本用户屏蔽页面的一部分

asp.net - 从多个应用程序进行单点登录

c# - 如何按运行总数对对象列表进行分组?

C# Linq To Excel 获取不在第一行开始的表数据

asp.net - 我为什么要使用 RIA 服务共享代码?

c# - ??有 2 个字符串的运算符?