Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq到实体扩展字符串连接_C#_Linq - Fatal编程技术网

C# Linq到实体扩展字符串连接

C# Linq到实体扩展字符串连接,c#,linq,C#,Linq,考虑这一点: var query = (from u in entity.Users select new { FullName = u.FirstName + " " + u.LastName } ); 这很好,但我想做的是: var query = (from u in entity.Users

考虑这一点:

var query = (from u in entity.Users
             select new
                    {
                        FullName = u.FirstName + " " + u.LastName
                    }
            );
这很好,但我想做的是:

var query = (from u in entity.Users
                select new
                {
                    FullName = u.FullName
                }
            );
我使用的元数据返回
(u.FirstName+“”+u.LastName)

但我得到了一个错误:

LINQ to实体中不支持指定的类型成员“FullName”

我知道,如果我具体化查询,它将很好地工作,但我不想这样做。我想在db级别上做,那么做的最好方式是什么,可能吗?或者我必须一直这样做
(u.FirstName+“”+u.LastName)

p、 s:我也试过:(不为我工作)

public静态表达式FullName()
{
返回u=>u.FirstName+“”+u.LastName;
}

谢谢

因为db不知道如何执行服务器端方法,所以它不会工作。 可能的选择:

封装:

public static Expression<Func<MyEntity, MyDto>> SelectFullNames()
{
      return e => new MyDto{} { Fullname = e.FirstName + " " + e.LastName; 
}

var queryable = dbConext.Users.Select(SelectFullNames());
public静态表达式SelectFullNames()
{
返回e=>newmydto{}{Fullname=e.FirstName+“”+e.LastName;
}
var queryable=dbConext.Users.Select(SelectFullNames());

免责声明-我在真实场景中不使用库。

如果使用模型优先方法,您可以创建一个UDF表达式方法。您可以演示如何使用它吗?如果您填写firstName和lastname,则在访问
FullName
属性时将计算全名,并且您的FullName属性为g仅限et,您如何设置该值?您的db是什么?Sql Server?如果是,您可以创建一个
计算列
:@KasparsOzols:可能我使用得不好,因为我不熟悉它,但我尝试过这个:
FullName=u.FullName
public static Expression<Func<User, string>> FullName()
{
    return u => u.FirstName + " " + u.LastName;
}
private static readonly CompiledExpression<Customer, string> fullNameExpression
   = DefaultTranslationOf<User>.Property(e => e.FullName)
                .Is(e => e.FirstName + " " + e.LastName);

[NotMapped]
public string FullName
{
     get { return fullNameExpression.Evaluate(this); }
}

var q = dbContext.Users.Select(u => new
     {
         FullName = u.FullName
     }).WithTranslations(); 
[NotMapped]
[Computed]
public string FullName
{
     get { return FirstName + " " + LastName; }
}


var q = dbContext.Users.Select(u => new
     {
         FullName = u.FullName
     }).Decompile(); 
public static Expression<Func<MyEntity, MyDto>> SelectFullNames()
{
      return e => new MyDto{} { Fullname = e.FirstName + " " + e.LastName; 
}

var queryable = dbConext.Users.Select(SelectFullNames());