С тех пор, как я работаю, заставляю меня использовать хранимые процедуры, и я не был достаточно долго, чтобы предотвратить это, я настроил генерацию кода LiNQ to SQL для всех наших хранимых процедур.Да, верно, у нас есть хранимые процедуры для ВСЕГО доступа к нашим данным, и поскольку у нас нет доступа к таблице , это означает, что мы часто получаем 3 класса для всех «сущностей».Теперь я подхожу к завершению последних изменений, когда я ударился о стену.
Следующий код не работает, и причина в том, что он вызывает сам, но мне нужно получить перегрузку.Причина этого в том, что невозможно отслеживать 40 параметров, поэтому я генерирую «динамический» класс при сборке проекта.
[Function(Name="dbo.user_insert")]
public IList<ProcedureResult> UserInsert(UserInsertObj userInsertObj)
{
IExecuteResult result = this.ExecuteMethodCall(this, (MethodInfo)MethodInfo.GetCurrentMethod(),
userInsertObj.UserId, userInsertObj.ProductId, userInsertObj.FromIp,
userInsertObj.CampaignName, userInsertObj.Campaign, userInsertObj.Login,
userInsertObj.Password, userInsertObj.Nickname, userInsertObj.Pin, userInsertObj.Language,
userInsertObj.Currency, userInsertObj.Country, userInsertObj.Region, userInsertObj.Birthday,
userInsertObj.FirstName, userInsertObj.MiddleName, userInsertObj.LastName,
userInsertObj.Address1, userInsertObj.Address2, userInsertObj.Address3, userInsertObj.Zip,
userInsertObj.City, userInsertObj.Timezone, userInsertObj.Email, userInsertObj.EmailNotify,
userInsertObj.Gender, userInsertObj.Phone, userInsertObj.MobileCc, userInsertObj.MobileNr,
userInsertObj.MobileModel, userInsertObj.Referral, userInsertObj.GroupId,
userInsertObj.StreetNumber, userInsertObj.StreetName);
return new List<ProcedureResult>
{
new ProcedureResult
{
Name = "userId",
Value = result.GetParameterValue(0),
Type = typeof(System.Nullable<System.Int32>)
}
};
}
Я поиграл, используя что-то подобное ниже, но понятия не имеюПерегрузка для использования и поиска в MSDN Я еще не приблизился к чему-либо полезному.
((MethodInfo)MethodInfo.GetCurrentMethod()).DeclaringType.GetMethod("", new Type[] {})
Как бы мне добиться получения перегрузки от CurrentMethod ?
EDIT: пояснил, что мы не можем использовать таблицы базы данных.