Не уверен, что DataAnnotations испортят ваши другие проекты, но ожидается, что они будут игнорировать DataAnotations, если вы не создадите несколько классов для их проверки.
Чтобы сохранить POCO как можно более простым, намерение DataAnnotations состоит в том, чтобы хранить метаданные и данные в одном месте (т. Е. Если требуется, чтобы _UnitsInStock всегда был положительным целым числом, каким-то образом это требование связано с определением данных " единиц в ассортименте "и идеально подходит под определение модели). Это также помогает избежать некоторых ошибок, поскольку, независимо от того, где вы используете проверку (в рамках проекта MVC), правила всегда будут одинаковыми (поэтому вы не можете забыть проверить переменную на минимальное значение на странице A, пока вы проверяете это на странице B). Сообщения об ошибках не обязательны, но вы можете использовать их для отображения более дружественного сообщения, и это сообщение об ошибке будет отображаться повсюду.
Это также упрощает автоматизированную проверку сервера и клиента (mvc).
С другой стороны, несмотря на то, что у вас есть возможность создавать собственные атрибуты для проверки бизнес-правил, это требует больше знаний и терпения, чем использование «бизнес-класса» (если вы к нему не привыкли), и насколько я знаете, это только официально поддерживается mvc 2.
Если ваши классы моделей являются общими для других проектов, возможно, у вас также есть общий уровень проверки, поэтому используйте этот уровень проверки вместо этого. Если у вас его нет, то DataAnnotations облегчат вашу жизнь в проектах MVC.