相关疑难解决方法(0)

没有DbSet的原始SQL查询 - 实体框架核心

使用Entity Framework Core删除dbData.Database.SqlQuery<SomeModel>我无法找到为我的全文搜索查询构建原始SQL查询的解决方案,该查询将返回表数据以及排名.

我见过在Entity Framework Core中构建原始SQL查询的唯一方法是通过dbData.Product.FromSql("SQL SCRIPT");它没有用,因为我没有DbSet来映射我在查询中返回的排名.

有任何想法吗???

c# entity-framework-core

79
推荐指数
11
解决办法
6万
查看次数

SqlQuery放入[NotMapped]字段?

我有一个运作良好的实体,但是接下来我需要附加来自另一个表的其他属性。我没有制作视图的能力,所以我只想添加一个[NotMapped]的字段,然后使用Context.Database.SqlQuery执行我的自定义语句并返回所有普通字段和这个新字段。

换句话说,是这样的:

public class Employee
{
    public int EmployeeId { get; set; }
    public string EmployeeName { get; set; }
    [NotMapped]
    public string CustomerName { get; set; }
}

public List<Employee> GetEmployees()
{
    using (MyContext context = new MyContext())
    {
        return context.Database.SqlQuery<Employee>("select E.EmployeeId, E.EmployeeName, C.CustomerName from Employee E left join Customer C on E.CustomerId = C.CustomerId").ToList();
    }
}
Run Code Online (Sandbox Code Playgroud)

是的,不是最好的例子,而是最简单的方法。从我一直在阅读的所有内容来看,SqlQuery应该忽略属性,因此应该可以正常工作,但是我的CustomerName总是返回null(我在Management Studio中运行了SQL,它在那里有一个值,只是在EF反序列化之后没有)进入我的对象)。

我需要做什么才能使它正常工作?可以吗 EF是否已更改为不允许这样做?

-shnar

c# sql entity-framework

5
推荐指数
1
解决办法
2156
查看次数

标签 统计

c# ×2

entity-framework ×1

entity-framework-core ×1

sql ×1