如何将项列表从 linq 返回到 sql 查询并在控制台应用程序中调用它
本文关键字:查询 控制台 应用程序 调用 sql 列表 返回 linq | 更新日期: 2023-09-27 18:33:49
我是 C# 的新手,我正在尝试使用 EF 和 linq 查询 sql 以返回从今天到特定日期的项目(策略)列表,假设提前 60 天,这一切都发生在类库中,然后我想循环访问控制台应用程序中的项目并列出该时间段的策略, 这是我在类库中的代码。
public class Class1
{
public void DoSomething()
{
using (var context = new CRMContext())
{
context.Policies.Where(p => p.new_RenewalDate ==
DateTime.Today.AddDays(60).Date).ToList();
}
}
}
我想在控制台应用程序中调用它
public class Program
{
public static void Main(string[] args)
{
Class1 instance = new Class1();
}
}
我想使用 for-each 循环遍历项目并写出到控制台,如何存档?任何帮助将不胜感激。
public class Class1 {
public List<Policy> DoSomething() {
using (var context = new CRMContext())
{
return context.Policies.Where(p => p.new_RenewalDate == DateTime.Today.AddDays(60).Date).ToList();
}
}
}
Class1 instance = new Class1();
List<Policy> list = instance.DoSomething();
foreach(Policy policy in list)
{
print what you want to print here :)
}
您只需要将策略分配给一个变量,然后遍历它:
public void DoSomething()
{
using (var context = new CRMContext())
{
var targetDate = DateTime.Today.AddDays(60).Date;
var policies = context.Policies.Where(p => p.new_RenewalDate == targetDate);
foreach (var policy in policies)
{
Console.WriteLine(policy.new_RenewalDate); // etc...
}
}
}
在您的主程序中:
public static void Main(string[] args)
{
Class1 instance = new Class1();
instance.DoSomething();
}
你只需要从你用来做工作的方法中返回一个可枚举的。
public class Class1
{
// Return list if you need list functionality, otherwise enumerable will do
public IEnumerable<Policy> DoSomething()
{
using (var context = new CRMContext())
{
return context.Policies.Where(p => p.new_RenewalDate ==
DateTime.Today.AddDays(60).Date).ToList();
}
}
}
public class Program
{
public static void Main(string[] args)
{
Class1 instance = new Class1();
foreach (var item in instance.DoSomething())
{
// Do work on the item here
}
}
}