如何检查对象是否为sql到linq类型
问题描述:
任何人都知道是否有任何简单的方法来检查对象是否为sql到linq类型?我有这样的方法,但希望它只接受有效的类型。如何检查对象是否为sql到linq类型
public static void Update(params object[] items)
{
using (TheDataContext dc = new TheDataContext())
{
System.Data.Linq.ITable table;
if(items.Length > 0)
table = dc.GetTable(items[0].GetType());
for (int i = 0; i < items.Length; i++)
{
table.Attach(items[i]);
dc.Refresh(System.Data.Linq.RefreshMode.KeepCurrentValues,
items[i]);
}
dc.SubmitChanges();
}
}
答
您将要访问从Mapping property on the DataContext instance返回的MetaModel实例。
因此,您可以调用GetTable方法,在当前的LINQ-to-SQL方案中支持要确定的模型类型。
请注意,这只是在模型,如果你想检查它是否存在于数据库中,那么这是一个不同的故事,你将不得不自己处理。但是,这并不难。从GetTable返回的MetaTable实例中,可以使用TableName property来获取数据库中存在的表的名称,然后根据模型上的映射来查询数据库中是否存在该表。
好的,谢谢,但我正在寻找的是在Update(params对象[]项)中替换对象的东西,以便它只能使用linq表作为参数。 – remdao 2010-04-01 06:23:52
@remado:我不明白你的意思。我给出的答案为您提供了可以检查对象类型的机制,以确保它们可以与LINQ一起使用。 – casperOne 2010-04-01 14:48:00