如何使用需要将当前项上下文与传入值进行比较的自定义函数编写LINQ to SQL语句?
我想看看数据库中是否存在记录。我检查空/空白,然后在所有地方进行字符串比较,我想加入一个函数,这样我就不必反复编写相同的代码 下面是我要比较的每件事情的代码外观如何使用需要将当前项上下文与传入值进行比较的自定义函数编写LINQ to SQL语句?,linq,linq-to-sql,lambda,Linq,Linq To Sql,Lambda,我想看看数据库中是否存在记录。我检查空/空白,然后在所有地方进行字符串比较,我想加入一个函数,这样我就不必反复编写相同的代码 下面是我要比较的每件事情的代码外观 return Db.AttributeNames.FirstOrDefault(an => (!string.IsNullOrWhiteSpace(an.Name) && string.Compare(attributeName.Name, an.Name, StringComparison.Ord
return Db.AttributeNames.FirstOrDefault(an =>
(!string.IsNullOrWhiteSpace(an.Name) &&
string.Compare(attributeName.Name, an.Name, StringComparison.OrdinalIgnoreCase) == 0) &&
(!string.IsNullOrWhiteSpace(an.Namspace) &&
string.Compare(attributeName.Namespace, an.Namspace, StringComparison.OrdinalIgnoreCase) == 0));
我试过这样的东西…显然不对
public Class1 Get(string url)
{
return Db.Class1s.FirstOrDefault(f => Equal<Class1>(f.Value, url));
}
public static Expression<Func<T, bool>> Equal<T>(string input, string url)
{
return a => input == url; // just to test for now, I need to add null/ws check and do compare
}
public Class1 Get(字符串url)
{
返回Db.classas.FirstOrDefault(f=>Equal(f.Value,url));
}
公共静态表达式Equal(字符串输入,字符串url)
{
返回a=>input==url;//为了暂时测试,我需要添加null/ws-check并进行比较
}
我知道,我知道。我不知道我在做什么,但我会感谢你的帮助 您可能需要创建一个扩展方法:
public static class MyExtensions
{
public static bool UrlEqual(this Class1s obj, string url)
{
return obj.Value == url;
}
}
然后您可以拨打以下电话:
return Db.Class1s.FirstOrDefault(f => f.UrlEqual(url));
您是否也总是比较属性名称或其他实体?是否始终使用Name和AttributeName?不,只需要一个通用函数来比较字符串