EC Core FromSql 查询返回自定义entity

news/2024/5/19 23:43:23 标签: .netcore

利用EF FromSql 自定义查询,有时间须要的字段可能是自定义的,因此须要返回自定义类的list

一、System.Data.Common

  /// <summary>
        /// EF query by sql
        /// </summary>
        /// <param name="context"></param>
        /// <param name="CommandText">select * from table where Id=@Id</param>
        /// <param name="cmdType"></param>
        /// <param name="dicParams">dicParams.Add("@Id", 1);</param>
        /// <returns></returns>
        public static DataTable GetDTableCommon(this DbContext context, string CommandText, CommandType cmdType = CommandType.Text, Dictionary<string, object> dicParams = null)
        {
            DataTable dt = new DataTable();

            DatabaseFacade dbFacade = new DatabaseFacade(context);
            var conn = dbFacade.GetDbConnection();
            conn.Open();
            DbCommand cmd = conn.CreateCommand();
            cmd.CommandText = CommandText;
            cmd.CommandType = cmdType;

            foreach (var parameter in dicParams == null ? new Dictionary<string, object>() : dicParams)
            {
                DbParameter p = cmd.CreateParameter();
                p.ParameterName = parameter.Key;
                p.Value = parameter.Value;
                cmd.Parameters.Add(p);
            }
            var dr = cmd.ExecuteReader();

            dt.Load(dr);
            dr.Close();
            conn.Close();
            return dt;
        }

二 、 FromSql

1、首先定义自定义entity 类:seller1

public partial class sellers1
{
    public int Id { get; set; }
}

2、然后在 Context类中把自定义类加入到DbSet,
PS:自动生成的Context类为Partial,为了方便管理, 可以再添加一个同样的类Context 专门来添加自定义类到Context

public partial class MyContext{
public virtual DbSet<sellers1> sellers1 { get; set; }
}

3、然后执行如下语句

var sql="select * from table"
var list1 = MyContext.Set<sellers1>().FromSql(sql).ToList();

http://www.niftyadmin.cn/n/1418201.html

相关文章

ActionForm中的表单跨页

<?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"…

nodejs 代理 https : DEPTH_ZERO_SELF_SIGNED_CERT

1、NodeJS 测试开发时一般用http地址&#xff0c;不用https&#xff0c;会出现证书问题DEPTH_ZERO_SELF_SIGNED_CERT 2、如果非得使用https, 则须要安装证书

聊聊.net程序设计——浅谈使用VS2010建模拓展(续)[转]

最近公司有2个项目将要上线&#xff0c;所以一直在加班&#xff08;行业的潜规则&#xff09;一直也没有时间写些自己感兴趣的东西&#xff0c;今天正好偷懒了没有加班提前回家&#xff0c;想着将前些时候写的《聊聊.net程序设计——浅谈使用VS2010建模拓展&#xff08;下&…

axios发送请求获取reponse header中的数据问题

如果是自定义的header名称&#xff0c;须要在跨域中设置&#xff1a;.WithExposedHeaders(“X-Total-Count”) services.AddCors(options >{options.AddPolicy("AllowAllOrigin", builder >{builder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod().Allow…

简单设置windows server 2008

关闭IE SEC   服务器系统要求很高的安全性&#xff0c;所以微软给ie添加了安全增强。这就使得ie在Internet区域的安全级别一直是最高的&#xff0c;而且无法进行整体调整。   点击快速运行栏的“服务器管理器”&#xff0c;开启服务器管理器。 1.勾选“登录时不要显示此…

EF Core DateTime 时间类型 查找 问题

EF Core 在时间查询时须要注意毫秒问题 1、如果数据库存储带了毫秒&#xff0c;那么在查询的时候传参也要带毫秒 --WorkDate字段没有毫秒的情况 StudioGeneric.Set<table1>().Where(p > p.WorkDate > new DateTime(2022, 6, 1, 23, 59, 59));2、如果数据库存储没…

EF Core 查询导航属性

两种方法&#xff1a; 1、在查询的字段中直接输入导航熟悉字段名称 2、通过include方法&#xff0c;此种方法可以查询导航下的导航属性&#xff0c;用比如查询query.include(“a.b”) 或者 query.include(“a.b.c”)

java 获取系统信息(从lucene源码找的)

2019独角兽企业重金招聘Python工程师标准>>> /** The value of <tt>System.getProperty("java.version")<tt>. **/ public static final String JAVA_VERSION System.getProperty("java.version"); /** True iff this is Java ver…