首页 新闻 会员 周边 捐助

.net 中有没有ORM框架支持自定义配置信息进行数据操作

0
悬赏园豆:20 [已解决问题] 解决于 2020-01-10 11:20

  在不新建实体类的情况下,通过配置信息去进行数据操作。(新建实体类是需要重新编译项目,而配置信息则可以随时编辑修改)

  比如一个xml或者json,存有字段、关联的数据表名等其他信息,然后传给ORM或者做一些中间处理去读写数据。

  例子:

    数据表users有 username,username1,username2三个字段

    配置信息如下:

    u.json只查询username , u1.json只查询username1

var u = {table:"users",field:["username"]}//u.json
var u1 = {table:"users",field:["username1"]}//u1.json

    .net中有一个方法GetData(jObject _j),传入这个配置信息(u.json或者u1.json),然后通过ORM去读取数据返回。

尾随前行的主页 尾随前行 | 初学一级 | 园豆:0
提问于:2019-12-26 11:08
< >
分享
最佳答案
0

ORM存在的意义之一不就在于能自动表结构和实体映射,节省时间,使人专注于业务代码吗?
现在你不想要了,据我所知,dapper有一种用法,
here:
Execute a query and map it to a list of dynamic objects

   public static IEnumerable<dynamic> Query (this IDbConnection cnn, string sql, object param = null, SqlTransaction transaction = null, bool buffered = true)

This method will execute SQL and return a dynamic list.

Example usage:

var rows = connection.Query("select 1 A, 2 B union all select 3, 4");

Assert.Equal(1, (int)rows[0].A);
Assert.Equal(2, (int)rows[0].B);
Assert.Equal(3, (int)rows[1].A);
Assert.Equal(4, (int)rows[1].B);

https://github.com/StackExchange/Dapper

收获园豆:20
猝不及防 | 老鸟四级 |园豆:2878 | 2019-12-26 11:21

因为突然想到了一个功能,所以就来问问。比如动态表单 

尾随前行 | 园豆:0 (初学一级) | 2019-12-26 13:01
其他回答(3)
0

这不就是mapreduce么。

odata这个是实现了的。我是个“懒”人,这种接口绝对不想写两次,直接在接口去上体现就行了。就是linq中的select哈。本身也就完全可以不需要任何多余的类,直接上X.Select(t=>new {Name=t.Name00})就OK的事,OData这个直接卸载WebApi上都可以。

花飘水流兮 | 园豆:13617 (专家六级) | 2019-12-27 02:23

 EF大法哈,NHibenate也实现了Linq的,其他只要实现了Linq或者可以自己套上Linq都是可以的。

支持(0) 反对(0) 花飘水流兮 | 园豆:13617 (专家六级) | 2019-12-27 02:25

@花飘水流兮: x.select(t=>new {})这种情况下,x、t都是已知类。在非开发环境下,使用配置信息去表达一个实体类,比如我说  u1.json,里面的field就是对应的匿名类字段。这样的话对于ORM肯定是不认识的,能否做一些中间处理去达到效果呢?

支持(0) 反对(0) 尾随前行 | 园豆:0 (初学一级) | 2019-12-27 08:57

@尾随前行: 当然很简单,但那还有什么意思呢,还叫什么ORM(自行翻译全词),写代码还怎么智能化提示。既然都可以不预定义格式,那还需要什么关系数据库。

支持(0) 反对(0) 花飘水流兮 | 园豆:13617 (专家六级) | 2019-12-27 15:18
0

很久以前写过一个很完美的框架,交给一群弱智,银联的项目,全部是你想象的根据传入对象和action run dynamic sql

A.Z | 园豆:311 (菜鸟二级) | 2020-01-05 23:43

 你好, 这个框架是否方便借阅一下呢? :)

支持(0) 反对(0) 尾随前行 | 园豆:0 (初学一级) | 2020-01-06 10:33

@尾随前行: 很遗憾,我们不认识没有交情,不能借阅

支持(0) 反对(0) A.Z | 园豆:311 (菜鸟二级) | 2020-01-06 23:39

@A.Z:  好吧, 那能帮忙给指引个方向吗 ?

支持(0) 反对(0) 尾随前行 | 园豆:0 (初学一级) | 2020-01-07 09:22
0

用emit 配合 xml 做定制化了。

尾随前行 | 园豆:0 (初学一级) | 2020-01-10 11:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册