我想从我的联系人表中返回联系人记录,但只能在联系人电子邮件地址有效的情况下返回。所以像下面这样:Linq to where where子句中的SQL有效电子邮件地址
var contacts = (from cont in db.Contacts
where cont.Accounts_CustomerID == accountId
&& ValidEmail(cont.EmailAddress)
select new ContactLight
{
AccountId = cont.Accounts_CustomerID,
FirstName = cont.Firstname,
LastName = cont.Lastname,
EmailAddress = cont.EmailAddress
});
private static bool ValidEmail(string email)
{
if(email == "")
return false;
else
return new System.Text.RegularExpressions.Regex(@"^[\w-\.][email protected]([\w-]+\.)+[\w-]{2,6}$").IsMatch(email);
}
我得到“方法'布尔ValidEmail(System.String)'没有支持转换为SQL”。所以我假设一个正则表达式的方法不能被翻译。最好的解决办法是什么?
拉出数据,然后运行validEmail地方上的对象子句在SQL使用 – saj 2012-08-03 10:51:18
的任何事物的地方一样,条款将被编译以某种形式SQL语句组成部分。您编写的自定义正则表达式匹配函数无法转换为SQL。 – Echilon 2012-08-03 10:52:36