map - Linq 选择使用 Valueinjecter 注入(inject)对象

标签 map valueinjecter

我可以即时将 IQueryable 结果转换为注入(inject)的对象吗?

我知道我可以在 Valueinjecter 的帮助下做到这一点:

usercategory uc1 = new usercategory(example);
usercategoryViewData ucVD1 = new usercategoryViewData();
ucVD1.injectFrom(uc1);

所以代替这个:
from u in db.usercategories
where u.id==id
select new usercategoryViewModel {id = u.id, name = u.id, description = u.id};

我想使用类似的东西:
from u in db.usercategories
where u.id==id
select new usercategoryViewModel.InjectFrom(u);    

我有 atm 的另一种选择是循环一个 IEnumerable 并用注入(inject)的对象创建一个。

最佳答案

在这里,我展示了两种方法:

        public class Foo
        {
            public string Name { get; set; }            
        }

        [Test]
        public void TestMethod1()
        {
            var bars = new[] { new { Name = "aaa" }, new { Name = "bbb" } };
            IEnumerable<Foo> foos = bars.Select(o => new Foo().InjectFrom(o)).Cast<Foo>();

            IEnumerable<Foo> foos2 = from bar in bars
                        select new Foo().InjectFrom(bar) as Foo;

            Assert.AreEqual(bars.First().Name, foos.First().Name);
            Assert.AreEqual(bars.First().Name, foos2.First().Name);
        }

关于map - Linq 选择使用 Valueinjecter 注入(inject)对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4484245/

相关文章:

c# - 如何使用 AutoMapper 深度克隆包含 IList 属性的对象

c++ - 如果我读取不存在键的 map 值会发生什么?

java - 更好的 map 构造器

javascript - 有没有办法调整图像大小并让图像映射保持在同一个地方? (html/Javascript/CSS)

asp.net-mvc - 带 IQueryable<T> 的 ValueInjecter

c# - 使用 ValueInjecter 在枚举之间映射

c# - AutoMapper 与 ValueInjecter

map - Clojure 应用映射和关键字参数破坏

perl - 为什么我会从链接的 map 调用中得到意想不到的结果?