Я предполагаю, что Вы пытаетесь решить, предоставить ли улучшенное JavaScript содержание. Лучшие реализации ухудшаются чисто, так, чтобы сайт все еще работал без JavaScript. Я также предполагаю, что Вы имеете в виду обнаружение серверной стороны, вместо того, чтобы использовать <noscript>
элемент по необъясненной причине.
нет хорошего способа выполнить серверную сторону обнаружение JavaScript. Как альтернатива возможно установить cookie с помощью JavaScript, и затем протестировать на тот cookie с помощью сценариев серверной стороны на последующие просмотры страницы. Однако это не подошло бы для решения, какое содержание поставить, поскольку это не будет в состоянии отличить посетителей без cookie от новых посетителей или посетителей, которые блокируют куки.
То, что вы делаете сейчас, будет работать нормально.
Если вы не хотите делать запросы к базе данных при назначении ode.Products, вы можете использовать следующую альтернативу:
// substitute your actual qualified entity set name
ode.ProductsReference.EntityKey =
new EntityKey("MyEntities.ProductsEntitySetName", "Id", 2);
Это быстрее, но менее читаемо. Кроме того, свойство Products будет иметь значение NULL, пока вы его не загрузите. Но для вставки это часто нормально.
Другой подход - использовать объекты-заглушки, а не EntityKeys, например
var product = new Product {ID = 2};
ctx.AttachTo("Products", product);
ode.Product = product;
и т. Д. В качестве дополнительного бонуса этот код будет работать и с объектами POCO в будущем.
См. это сообщение в блоге для получения дополнительной информации об этой технике.