我知道.Contains()方法确实喜欢LIKE %therm%,.StartsWith()方法确实喜欢LIKE therm%和.EndsWith()方法一样LIKE %therm但是......
有没有办法在下面做**Linq to Entities**?
SELECT * FROM [dbo].[Users] WHERE Name LIKE 'rodrigo%otavio%diniz%waltenberg'
Run Code Online (Sandbox Code Playgroud)
PS:我正在使用LINQ to ENTITIES.不是LINQ TO SQL
我尝试动态创建一些LINQ查询来搜索所有列中的数据.

目前,我使用以下代码来构建动态LINQ查询.然而,当处理复杂的列时,它是非常错误的.
var type = property[col.ToLower()].PropertyType;
var isNullableType = type.IsGenericType && type.GetGenericTypeDefinition() == typeof (Nullable<>);
if (type.IsValueType && !isNullableType)
{
filter += col + ".ToString().ToLower().Contains(@" + i + ".ToLower())";
}
else if (isNullableType)
{
filter += col + ".HasValue ? " + col + ".Value.ToString().ToLower().Contains(@" + i + ".ToLower())" + " : false";
}
else
{
filter += "(" + col + " != null ? " + col + " : \"\").ToString().ToLower().Contains(@" + i + ".ToLower())";
}
Run Code Online (Sandbox Code Playgroud)
你有什么想法来简化我的上述代码吗?如果您的建议仅适用于SQL Server …
我非常需要帮助,我已经尝试这样做有一段时间了。
所以我有这个查询:
Select name from BlaBlaBla
order by
case when name like '9%' then 1 end,
case when name like '8%' then 1 end,
case when name like '7%' then 1 end,
case when name like '6%' then 1 end,
case when name like '5%' then 1 end,
case when name like '4%' then 1 end,
case when name like '3%' then 1 end,
case when name like '2%' then 1 end,
case when name like '1%' then 1 end, …Run Code Online (Sandbox Code Playgroud) 如何使用edo实体框架在ASP.net MVC中获取通配符文本搜索(如SQL的"like"语句)?
我以为这会起作用:
var elig = (from e in _documentDataModel.Protocol_Eligibility_View
where e.criteria.Contains(query)
select e);
Run Code Online (Sandbox Code Playgroud)
但即使搜索肯定在数据库中的查询字符串,它也不会返回任何结果.我究竟做错了什么?
ProductModel.cs:(上课)
public List<Product> GetSearchedProduct (string Name)
{
try
{
using (garagedbEntities db = new garagedbEntities())
{
List<Product> products = (from x in db.Products
where x.Name LIKE @txtSearch
select x).ToList();
return products;
}
}
catch (Exception)
{
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
search.aspx:
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:TextBox ID="txtSearch" runat="server"></asp:TextBox>
<asp:Button ID="btnSearch" runat="server" Text="Button" OnClick="btnSearch_Click" />
<br />
<asp:Panel ID="pnlProducts" runat="server">
<br />
</asp:Panel>
<div style="clear:both"></div> …Run Code Online (Sandbox Code Playgroud) c# ×3
linq ×3
asp.net ×2
sql ×2
.net ×1
dynamic-linq ×1
linq-to-sql ×1
sql-server ×1
wildcard ×1