Как альтернатива утиному вводу через
typeof date.getMonth === 'function'
можно использовать instanceof
оператор, т.е. Но это возвратит true для недопустимых дат также, например, new Date('random_string')
также экземпляр Даты
date instanceof Date
, Это перестанет работать, если объекты будут переданы через границы кадра.
обходное решение А для этого должно проверить класс объекта через
Object.prototype.toString.call(date) === '[object Date]'
Мой совет: «Не делайте этого».
Позвольте мне быть более конкретным.
Использование UserId в качестве сопоставленного внешнего ключа связывает вашу модель сущности не с членством в ASP.NET в целом , но в целом поставщику членства в SQL. Что произойдет, если вы затем захотите использовать аутентификацию домена или OpenID?
Не поймите меня неправильно: в 99,9% случаев правильно связывать ссылки на БД вместе с внешним ключом. Черт возьми, вы даже можете сделать это здесь, но не отображайте это в своей модели сущности. Вам необходимо сохранить стену логического разделения между поставщиками членства и вашими собственными данными. Вы получаете доступ к своим данным через EF. Вы получаете доступ к данным членства через API членства. Тот факт, что они живут в одной базе данных, потому что вы используете поставщика членства в SQL, является деталью реализации.
Обновление: Я расширил эту идею в сообщении блога ].