当前位置: 首页 > 编程语言 > C#

铸-画代表分享

时间:2023-04-10 19:40:33 C#

铸/画代表我有一个方法publicListGetUsers(Funcexpression){varusers=newList();using(UserContextcontext=newUserContext()){//显然是一个错误users=context.Users.ToList();}返回用户;}注意DTO.User(一个DTO)和Domain.User(来自EF的域实体)所以我使用AutoMapper来映射这样的实体publicListGetUsers(){varusers=newList();using(UserContextcontext=newUserContext()){Mapper.CreateMap();users=Mapper.Map(context.Users.ToList());}返回用户;好的,这看起来不错,但是..我希望GetUser方法接受委托表达式作为参数。我在ui中有一个显示用户列表的网格,它有很多过滤器选项,所以我希望我的UI只调用1个方法而不是每个过滤器创建方法。//按用户名过滤Listusers=userBL.GetUsers(u=>u.UserName.Contains(txtUserName.Text));//按ID列表过滤users=userBL.GetUsers(u=>u.==txtUserID.Text);...所以我在DAL层提出了这个想法publicListGetUsers(Funcexpression){varusers=newList();using(UserContextcontext=newUserContext()){Mapper.CreateMap();函数谓词;//这是AutoMaperpredicate=Mapper.Map(expression)的一个错误//我也试过直接转换,这是一个明显的失败//predicate=(Func)expression;users=Mapper.Map(context.Users.Where(predicate).ToList());}返回用户;基本上,我正在尝试将DTO委托转换或映射到域delaget,以便在domain.Userlist的.Where()方法中使用它。是否可以?提前致谢。我几乎可以肯定您不能将一个委托映射到另一个委托,但是您的代码存在更多问题:如果您仍在转换委托,您可以在此处找到更多相关信息。以上就是《C#学习教程:铸造/绘图代表》分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: