Я хочу реализовать GUID в качестве основного ключа в своих моделях. Я использую подход, основанный на модели, и хочу, чтобы GUID
был создан не в базе данных, а на сервере .NET.Entity Framework: использование GUID в качестве первичного ключа
Я видел решение, сказал, что я должен сделать это для каждого класса:
public class TestObject
{
public TestObject()
{
Id = Guid.NewGuid();
}
public Guid Id { get; set; }
}
Проблема заключается в том, что: я не думаю, что это чистое решение, применяя это к каждому класс у меня есть.
И у меня нет классов POCO, потому что я использую сначала модель.
Итак, что мне делать? Как вы думаете, это лучший подход? Любой совет?
прочитанное Ким Трипп (в http://www.sqlskills.com/blogs/kimberly/guids-as-primary-keys-andor-the- кластеризация ключ /). С точки зрения DBA, GUID как ваш ПК является ** ужасно плохим ** выбором из-за массивной фрагментации и, следовательно, массовых отрицательных результатов. Если у вас есть роскошь разработки новой системы баз данных - ** НЕ используйте GUID в качестве основных ключей! –
Я не уверен, что так плохо использовать guid как PK: я думаю, что есть несколько преимуществ. Когда мне нужно объединить похожие таблицы, исходящие из разных dbs (таблицы заказов в приложении для продаж), у меня нет записи из разных dbs с тем же PK, который должен быть реорганизован, и если я выставляю PK в веб-приложении (строка запроса и т. д.). У меня немного более высокая безопасность при 0 стоимости, потому что сложнее угадать другие записи, что намного проще, когда вы видите, что ПК является типичным целым числом автоинкремент. Вы не можете основывать безопасность на этом, но на 0 стоимости. –
Я хочу использовать GUID из-за того, что говорит Лука ... Я знаю, что он не имеет лучшей производительности, но мне нужно это сделать. Кто-нибудь из вас знает, как я могу делать то, что я прошу? –