লিনকিউ-তে আমার "এসকিউএল লাইক" পদ্ধতিটি দেখার জন্য এখানে যেমন আমার মতো কাঁপছে তাদের জন্য আমি এমন কিছু করেছি যা খুব ভাল কাজ করছে।
আমি এমন একটি ক্ষেত্রে রয়েছি যেখানে কলামের জোট পরিবর্তন করতে কোনওভাবেই আমি ডাটাবেস পরিবর্তন করতে পারি না। সুতরাং এটি করার জন্য আমার লিনকিউতে একটি উপায় খুঁজে বের করতে হবে।
আমি হেল্পার পদ্ধতিতে SqlFunctions.PatIndex
ডাইনী অ্যাক্টটি সত্যিকারের এসকিউএল লাইক অপারেটরের মতো ব্যবহার করছি।
প্রথমে আমার সন্ধানের মান হিসাবে সম্ভাব্য সমস্ত ডায়াক্রিটিক্স (একটি শব্দ যা আমি শিখেছি) গণনার দরকার যেমন এরকম কিছু পেতে:
déjà => d[éèêëeÉÈÊËE]j[aàâäAÀÂÄ]
montreal => montr[éèêëeÉÈÊËE][aàâäAÀÂÄ]l
montréal => montr[éèêëeÉÈÊËE][aàâäAÀÂÄ]l
এবং তারপরে লিনকিউতে উদাহরণের জন্য:
var city = "montr[éèêëeÉÈÊËE][aàâäAÀÂÄ]l";
var data = (from loc in _context.Locations
where SqlFunctions.PatIndex(city, loc.City) > 0
select loc.City).ToList();
সুতরাং আমার প্রয়োজনের জন্য আমি একটি সহায়ক / এক্সটেনশন পদ্ধতি লিখেছি
public static class SqlServerHelper
{
private static readonly List<KeyValuePair<string, string>> Diacritics = new List<KeyValuePair<string, string>>()
{
new KeyValuePair<string, string>("A", "aàâäAÀÂÄ"),
new KeyValuePair<string, string>("E", "éèêëeÉÈÊËE"),
new KeyValuePair<string, string>("U", "uûüùUÛÜÙ"),
new KeyValuePair<string, string>("C", "cçCÇ"),
new KeyValuePair<string, string>("I", "iîïIÎÏ"),
new KeyValuePair<string, string>("O", "ôöÔÖ"),
new KeyValuePair<string, string>("Y", "YŸÝýyÿ")
};
public static string EnumarateDiacritics(this string stringToDiatritics)
{
if (string.IsNullOrEmpty(stringToDiatritics.Trim()))
return stringToDiatritics;
var diacriticChecked = string.Empty;
foreach (var c in stringToDiatritics.ToCharArray())
{
var diac = Diacritics.FirstOrDefault(o => o.Value.ToCharArray().Contains(c));
if (string.IsNullOrEmpty(diac.Key))
continue;
//Prevent from doing same letter/Diacritic more than one time
if (diacriticChecked.Contains(diac.Key))
continue;
diacriticChecked += diac.Key;
stringToDiatritics = stringToDiatritics.Replace(c.ToString(), "[" + diac.Value + "]");
}
stringToDiatritics = "%" + stringToDiatritics + "%";
return stringToDiatritics;
}
}
আপনার কারও কাছে যদি এই পদ্ধতিটি বাড়ানোর পরামর্শ থাকে তবে আমি আপনার কথাটি শুনে দয়া করে খুশি হব।
5
জন্য কমপক্ষে ভোট রয়েছে । আমি বিনীত অনুরোধ আপনার প্রস্তাবিত গেল SQL- মতো হিসেবে সমার্থক ?