救命啊,玩数据转换的高手大侠给条明路吧.

jamsunyue 2013-09-04 02:05:45
本意是不希望每张数据表都定义个类,这样觉得太过繁琐,所以就有了下面的语句:
IEnumerable<object> users = mdc.ExecuteQuery<object>("select * from userlist");

通过 foreach 可以循环出数据表的记录数.
但怎么也转换也读不到数据表字段的值.
还望高手指点阿!!!!!!!
...全文
9298 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
EnForGrass 2013-09-04
  • 打赏
  • 举报
回复
读取记录数,这样啊 IEnumerable<int> users = mdc.ExecuteQuery<int>("select count(1) from userlist"); 但是还是建议指定实体来完成
  • 打赏
  • 举报
回复
db.CreateObjectSet<T>().DeleteObject(entity);
  • 打赏
  • 举报
回复

public static bool Add<T>(this ObjectContext db, T item) where T : EntityObject
        {
            db.CreateObjectSet<T>().AddObject(item);
            return db.SaveChanges() > 0;        }

        public static bool Delete<T>(this ObjectContext db, object itemId) where T : EntityObject
        {
            var entity = TryGetObjectByKey<T>(db, itemId);
            if (entity != null)
            {
                db.CreateObjectSet<T>().EntitySet.Name.DeleteObject(entity);
                return db.SaveChanges() > 0;
            }            
            return false;
        }
即使重合名过,4.0以上也可以直接用db.CreateObjectSet<T>().EntitySet.Name取得,用不着什么反射 CRUD就有了
  • 打赏
  • 举报
回复

public static T TryGetObjectByKey<T>(this ObjectContext db, string entitySetName, string keyName, object keyValue) where T : EntityObject
        {
            object entity;
            var key = new EntityKey(db.DefaultContainerName + "." + entitySetName, keyName, keyValue);
            if (db.TryGetObjectByKey(key, out entity))
            {
                return (T)entity;
            }
            return default(T);
        }
public static IQueryable<T> GetEntityQuery<T>(
            this ObjectContext dataContext,
            string entitySetName,
            string includeTable, 
            Expression<Func<T, bool>> predicate)
            where T : EntityObject
        {            
            var dataQuery = dataContext.CreateQuery<T>(entitySetName);
            IQueryable<T> query = dataQuery;
            if (!string.IsNullOrEmpty(includeTable))
            {
                query = dataQuery.Include(includeTable);
            }            
            if (predicate != null)
            {
                query = query.Where(predicate);
            }
            return query;
        }

//其中的entitySetName就是实体集名称,如果没有重命名过,默认与数据库表名相同,也就是typeof(T).Name
  • 打赏
  • 举报
回复
返璞归真? mdc.ExecuteQuery是个啥? entity加反射吧
claymore1114 2013-09-04
  • 打赏
  • 举报
回复
以前 用DataTable,大家觉得没有表现出对象,纯属数据。 后来 用Entity实体类Model,表现直观,一个对象总觉得应该有行为,不只是属性。 再来 用Domain领域对象,有行为了,一个对象总算有自己的行为了,但是大家觉得它应该跟外界打交道...事件。 楼主直接用object,小伙伴们都惊呆了,表示为了省事,也不带这么整的。
jakey188 2013-09-04
  • 打赏
  • 举报
回复
可以用dynamic 数据量大不建议使用 不过还是建议使用POCO
灬浪子灬 2013-09-04
  • 打赏
  • 举报
回复
EF
jamsunyue 2013-09-04
  • 打赏
  • 举报
回复
引用 4 楼 hdhai9451 的回复:
写个通用的类,通过反射获取数据类型,再转换成List返回
谢谢,谢谢,能不能写一段,或更具体点吗?
Andy__Huang 2013-09-04
  • 打赏
  • 举报
回复
写个通用的类,通过反射获取数据类型,再转换成List返回
bdmh 2013-09-04
  • 打赏
  • 举报
回复
users是object类型,你要转为你的具体类型去访问其中的内容
q107770540 2013-09-04
  • 打赏
  • 举报
回复
如果你只需要返回一个字段的值,可以这样:
IEnumerable<int> users = mdc.ExecuteQuery<int>("select ID from userlist");
如果你需要返回多列的值,就不能用object了,建议你需要定义一个类来实现:
IEnumerable<Users> users = mdc.ExecuteQuery<Users>("select * from userlist");
内容概要:本文围绕水陆两栖无人机的任务规划与执行问题,提出了一种基于Matlab实现的智能路径规划解决方案,重点融合粒子群优化算法(PSO)与遗传算法(GA)进行三维环境下的避障路径规划。研究系统性地构建了从复杂地形建模、任务需求分析到算法设计与仿真实验的完整流程,实现了在多约束、动态障碍物等复杂环境下无人机的高效任务调度。通过对GA与PSO两种智能优化算法在路径长度、收敛速度、路径平滑度及稳定性等方面的对比分析,深入探讨了各自在无人机路径规划中的适用场景与性能差异,验证了所提方法在提升任务执行效率与安全性方面的有效性。该方案不仅适用于水陆交互通用场景,也为多模态无人系统自主导航提供了可扩展的技术框架。; 适合人群:具备一定Matlab编程能力和算法基础,从事无人机路径规划、智能优化算法研究、自动化控制或相关领域科研工作的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于水陆两栖无人机在复杂自然环境(如江河湖海与陆地交错区域)中的自主巡航与任务执行;②比较遗传算法与粒子群算法在三维动态路径规划中的优化性能,指导实际工程中算法选型;③为多约束条件下无人系统的自主决策与实时避障提供算法支持与仿真验证平台。; 阅读建议:建议读者结合提供的Matlab代码进行动手实践,重点关注两种算法的数学建模过程、适应度函数设计、参数调优策略及路径生成逻辑,通过仿真实验直观对比算法性能差异,深入理解智能优化算法在复杂路径规划问题中的应用机制与优化潜力。

8,492

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧