如何在LINQ C#中选择所有记录并格式化所选记录

时间:2017-05-18 17:10:11

标签: c# entity-framework linq

我有一个包含大约100列的Products表。我想检索所有列并格式化一些代理列,如: ApplicationType = i.ApplicationType.ToString(), SystemOwnerDepartment = i.SystemOwnerDepartment.Acronym 我如何使用LINQ做到这一点。这是我的代码

ChangeListener<Number> componentListener = (obs, oldValue, newValue) -> 
    color.set(Color.rgb(r.get(), g.get(), b.get());
r.addListener(componentListener);
g.addListener(componentListener);
b.addListener(componentListener);

color.addListener((obs, oldColor, newColor) -> {
   r.set((int)/(256*newColor.getRed()));
   g.set((int)/(256*newColor.getGren()));
   b.set((int)/(256*newColor.getBlue()));
});

colorPicker.valueProperty().bindBidirectional(color);

2 个答案:

答案 0 :(得分:-1)

我在这里看到2个选项。

  1. 创建Source属性,它将托管包含所有列的初始对象,并根据需要创建单独的属性:

            var qry = from i in db.Products
                              select new
                              {
                                  Source = i, // <-- this one
                                  BusinessOwnerDepartment = i.BusinessOwnerDepartment.Acronym,
                                  BusinessOwnerOffice = i.BusinessOwnerOffice.Acronym,
                                  SystemOwnerDepartment = i.SystemOwnerDepartment.Acronym,
                                  ApplicationType = i.ApplicationType.ToString(),
                                  Status = i.IsActive.ToString()
                              };
    
  2. 为您的Products类创建将返回格式化数据的显示属性 类似的东西:

    public string DisplayApplicationType { get { return this.ApplicationType.ToString(); } }

  3. 您也可以使用join声明,但我目前无法为您创建示例查询,因此您可以自行进行探索

答案 1 :(得分:-1)

循环引用可能会出现,因为您将在Products对象中拥有一个导航属性,而该对象将再次引用某个父对象。请发布您的产品类结构。