У меня есть вопрос о столбце EF и XML в модели EF.
В моем проекте есть страница поиска со многими полями.Я пересекаю свои значения с кодом:
IQueryable<ServicesRegistration> query = null;
using (SelfServiceEntities context = new SelfServiceEntities())
{
query = context.ServicesRegistrations.Include("BanStatusType").Where(c => c.AppID == "MyApp");
if (filter.RequestStatus != null)
{
if (query == null)
{
query = context.ServicesRegistrations
.Include("BanStatusType")
.Where(c => c.BanStatusType.StatusID == filter.RequestStatus);
}
else
{
query = query.Where(c => c.BanStatusType.StatusID == filter.RequestStatus);
}
}
}
Это хорошо работает для всех простых типов, таких как string, int и т. Д.
Но когда я пытаюсь выполнить такую операцию над столбцом XML, я получаю исключение:
InnerException = {"Запрещено неявное преобразование из типа данных xml в тип данных nvarchar, таблица 'dbo.ServicesRegistrations', столбец 'MetadataXml'. Используйте функцию CONVERT для выполнения этого запроса."}
Мой код:
if (!string.IsNullOrEmpty(filter.SerialNumber))
{
if (query == null)
{
query = context.ServicesRegistrations
.Include("BanStatusType").Where(c => c.MetadataXml.Contains(filter.SerialNumber));
}
else
{
query = query.Where(c => c.MetadataXml.Contains(filter.SerialNumber));
}
}
Я использую Ef 3.5 и знаю, что в нем есть какая-то проблема с реализацией XML-данных.
Кто-нибудь решил такую проблему?проблема?Спасибо