小编Mar*_*čič的帖子

使用Dynamic LINQ过滤子查询

我正在使用动态LINQ库 进行过滤的大型应用程序.

我的数据访问层中的所有类都派生自一个共同的祖先DALAncestor,其中包括定义方法GetData:public abstract List GetData(Filter filter)

对于Customer,此方法的实现看起来像这样(简化):

public override List<Entities.Customer> GetData(Filter filter) {
  var customers = from c in db.Customers
                  select new Entites.Customer { 
                    ID = c.ID,
                    FullName = c.Name,
                    Country = c.Country
                  };

   return = filter.Apply(customers).ToList();
}
Run Code Online (Sandbox Code Playgroud)

"Apply"是一种获取条件集合并使用Dynamic LINQ Libary应用所有条件的方法.

方法GetData被调用如下:

private void DemoCallGetDataMethod() {
  var filter = new Filter();
  filter.AddCondition("Country", "Austria");

  var list = myCustomerDAL.GetData(filter);
  // do something
}
Run Code Online (Sandbox Code Playgroud)

SQL Server获取一个选择语句:

SELECT [t0].ID, [t0].Name, [t0].Country
  FROM Customer [t0]
 WHERE [t0].Country = @p0
Run Code Online (Sandbox Code Playgroud)

(@ p0是一个参数,其值设置为"奥地利").

如果我只想在"顶层"(主)级别上过滤值,那么一切都很有效.但是,由于我在过滤器表单上的用户输入上构建了我的过滤器,因此在某些情况下,用户希望按详细级别的值过滤(即,只有在用户单击"搜索"后才能知道要过滤的列).

我无法找到解决方案:"从奥地利购买百事可乐的所有客户". …

c# dynamic linq-to-sql

5
推荐指数
1
解决办法
1357
查看次数

如何在触发器中更新插入的字段

好的,我的情况是这样的:

我有一个名为Company的表,我希望在我在此表中添加的每个记录之后添加一个触发器,检查列Name是否以'LTD'结尾,然后在Name的末尾添加'LTD'.

我收到一条错误,说"')'附近的语法不正确.我该怎么做?

Create Trigger [Add_LTD] on Company
After Insert As
Update Company
Set Name = Name + ' LTD'
If Exists (Select Name 
From Inserted
Where Name Not Like '% LTD')  
Run Code Online (Sandbox Code Playgroud)

sql-server triggers sql-server-2012

3
推荐指数
1
解决办法
3万
查看次数

C#源代码中的区域摘要注释是什么?

我知道C#中的属性是什么,但我不知道那些文本是什么.我从未在任何C#语言教科书中看到它们.

你能帮我解释一下代码中的文字是什么吗?

他们的目的是什么?我可以安全地删除它们吗?

  1. ///
  2. #区域

在此输入图像描述

c#

-4
推荐指数
1
解决办法
1135
查看次数