Попробуйте это, чтобы получить 4005900288646
//script/substring-before(substring-after(., "ean13: '"), "',")
Все эти ответы и никакие ссылки! Возможно, я могу помочь:
Вещь атрибутов это damieng упоминается
Частичная вещь класса, которую упомянул Marcus King
Я томился через эту трудность пару раз, что я закончил тем, что делал на своем последнем проекте, использовал интерфейсы в качестве контракта, это совместно используется всеми различными проектами в решении, и наличие частичных классов реализует его.
[Table(Name="Products")]
public partial class Product: IProduct { }
И да, к сожалению, потребовалось некоторое отражательное волшебство заставить его работать на ПОСТЕПЕННО реализация.
В конце, если бы Вы действительно обеспокоены этим, я пошел бы с NHibernate (мне действительно не нравится он ни один), который делает точно, что Garry Shulter, кажется, описывает.
Надежда, которая помогает!
Моя команда, с которой борются с этой проблемой недавно. Я действительно хотел поддержать "незнание персистентности", подразумевая, что объекты области могли быть созданы, поскольку простой C# возражает, не будучи вынужденным наследоваться определенному базовому классу или загромоздить класс с набором атрибутов. Как Вы сказал, мы хотели смочь изменить слой персистентности независимо от бизнес-модели.
В конце мы решили, что LINQ не является способом пойти, если Вы хотите незнание персистентности. Мы заканчиваем тем, что писали слишком много отображающегося кода для преобразования между уровнем LINQ и нашим бизнес-слоем. Когда мы начали писать набор основанного на отражении кода, чтобы попытаться сделать эти отображения автоматически, мы поняли, что скатывались с кроличьей норы, с мало для показа для него.
Если незнание персистентности важно для Вас, Вы могли бы быть лучше обслужены с законченным ORM как NHIbernate.
Linq к SQL (или EF) не о незнании персистентности. Это об объектном представлении данных.
NHibernate является незнанием персистентности ORM, который можно искать.
О, эй я думаю, что нашел решение этого при наблюдении скринкастов Rob Conery на ASP.NET MVC. Прием к select
в объект в Вашем LINQ к SQL-запросу.
public IQueryable<LinqExample.Core.Person> GetAll() {
var people = from pe in this.db.Persons
select new Person {
Id = pe.id,
FirstName = pe.fname,
LastName = pe.lname,
Reports = this.GetReports(pe.id)
};
return people;
}
Это позволяет нам, Вы определяете a Person
классифицируйте в другом месте в Вашем коде. Я вел блог об этом больше подробно.
Я недавно достиг этого путем создания POCOs сам и вручную создания XML отображающийся файл для базы данных. Требуется немного физического труда, но это дает желаемый эффект.
Вот сообщение в блоге, которое я нашел полезным для запущения Вас.
Scott Hanselman сделал экран, говорящий о asp.net DynamicData, где он привык Linq Для классов Sql. Хотя он не решал конкретную проблему, я думаю, что общее понятие все еще работало бы. Его подход должен был создать отдельный частичный класс, который имел то же имя как класс, Product
в Вашем случае, который был сгенерирован dbml. Затем у Вас должен всегда быть a Product
класс, который существует за пределами того, что LINQ генерирует и просто "расширяет", что он делает.
Просто скопируйте сгенерированный код в свои собственные классы и выключите генерацию кода. Волшебство еще находится в атрибутах ничто.
Кроме того, можно записать собственной плоскости объекты CLR без атрибутов и использовать внешний XML отображающийся файл для описания отношений между объектами и базой данных. Больше информации может быть найдено в LINQ к документации SQL относительно MSDN.