linq 如何使用IQueryable从类中选择某些字段?

j8ag8udp  于 2023-02-01  发布在  其他
关注(0)|答案(3)|浏览(155)

我有一个IQueryable<MainObjectTest>,其中有几个字段,但我只需要取出某些字段(Title和NestedObject)。
如何使用动态选择表达式来实现这一点?

public class TestIQueryable
    {

        public IQueryable GetObjectData(IQueryable<MainObjectTest> data)
        {
            IQueryable requredDataFields = data.Select("new(Title, NestedObject)");
            return requredDataFields;
        }
        public class MainObjectTest
        {
            public string Title { get; set; }
            public DateTime Date { get; set; }
            public NestedClassTest NestedObject { get; set; }
        }

        public class NestedClassTest
        {
            public string Field1 { get; set; }
            public string Field2 { get; set; }
            public string Field3 { get; set; }
        }
    }
jbose2ul

jbose2ul1#

做一个接口怎么样:

interface Interface1
{
       public string Title { get; set; }
       public NestedClassTest NestedObject { get; set; }
}

在类中实现接口并让GetObjectData返回接口

public IQueryable GetObjectData(IQueryable<Interface1> data)
{
    IQueryable requredDataFields = data.Select();
    return requredDataFields;
}
3df52oht

3df52oht2#

我解决了我的问题使用模型,这里的步骤:
1.如果你有嵌套的object =〉使用ToList()将数据库中的所有数据Map到模型中。
1.使用DynamicLinq库从模型中选择某些字段作为IQueryable。
希望能对人有所帮助!

6ie5vjzr

6ie5vjzr3#

像这样使用匿名对象。

IQueryable requredDataFields = data.Select(x => new {  x.Title,  x.NestedObject });

相关问题