c# - Execute decrypt function on LINQ query -
if have following query companies.name encrypted:
obviously executing following query going invalid because we're searching against encrypted names.
iqueryable<file> files = getfiles(f => f.clients.any(fc => fc.contacts.any(c => c.companies.any(x => x.name.contains(searchtext))))); i'm after way decrypt companies.name before query executed via decrypt() function have in place.
edit 1:
i have partial class company decrypted property called displayname returns decrypted name property, linq telling me specified type member displayname not supported in linq entities. initializers, entity members, , entity navigation properties supported.
iqueryable<file> files = getfiles(f => f.clients.any(fc => fc.contacts.any(c => c.companies.any(x => x.displayname.contains(searchtext))))); if there's way use partial class property inside linq statement guess work.
edit 2:
i ended creating sql clr function decrypts company names , can call datacontext.searchcompanies(searchtext) in code return list of companies.
i'm not sure however, how replace companies within original list?
you define stored procedure perform search:
create procedure searchcompanies @searchtext nvarchar(100) begin select * companies c -- implement logic here... dbo.decrypt(c.name) @searchtext end then, add stored procedure function import data context , data:
using(var datacontext = new datacontext()) { return datacontext.searchcompanies(searchtext); }
Comments
Post a Comment