[英]Run linq-to-sql queries on database with changing structure
当底层数据库结构不时发生变化时,是否可以运行 Linq-to-SQL 查询(我的意思是由于业务需求和数据库在多个应用程序之间共享而发生的数据库更新,这可能会在没有通知我的情况下发生)?
有什么方法可以在不更新源代码中的.dbml
文件的情况下连接到 Linq-to-SQL 中的新数据库结构?
如果我想在知道我的数据库结构随时间发生变化的情况下运行原始查询,我可以以某种方式使用 Linq-to-SQL 的任何好处吗?
如果您的类中的结构与您的表格相匹配(至少涵盖您需要的所有字段),您就可以做到这一点。 即:Northwind 客户表实际上有 4 个以上的字段。 如果以下 4 项仍在该表中,这将起作用:
void Main()
{
DataContext db = new DataContext(@"server=.\SQLexpress;trusted_connection=yes;database=Northwind");
Table<Customer> Customers = db.GetTable<Customer>();
var data = Customers.Where(c => c.Country == "USA");
foreach (var customer in data)
{
Console.WriteLine($"{customer.CustomerID}, {customer.CompanyName}");
}
}
[Table(Name = "Customers")]
public class Customer
{
[Column]
public string CustomerID { get; set; }
[Column]
public string CompanyName { get; set; }
[Column]
public string ContactName { get; set; }
[Column]
public string Country { get; set; }
}
对于原始 SQL,您可以再次使用覆盖选择列表或动态中的字段的类型。
注意:对于插入,为了使其工作,不在模型中的字段应该接受 null 或具有默认值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.