ストアド プロシージャ関数のインポートからの結果を入力するために、独自の複合型を作成しました。SP のデータ型は Int であり、複合型プロパティも Int です。アプリケーションを実行すると、 「 '' のプロパティを ''String' 値に設定できませんでした」というエラーが表示されます。このプロパティを 'Int32' 型の null 以外の値に設定する必要があります
/// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
[DataMemberAttribute()]
public Nullable<global::System.Int32> ConfidenceLevel
{
get
{
return _ConfidenceLevel;
}
set
{
OnConfidenceLevelChanging(value);
ReportPropertyChanging("ConfidenceLevel");
_ConfidenceLevel = StructuralObject.SetValidValue(value);
ReportPropertyChanged("ConfidenceLevel");
OnConfidenceLevelChanged();
}
}
private Nullable<global::System.Int32> _ConfidenceLevel;
partial void OnConfidenceLevelChanging(Nullable<global::System.Int32> value);
partial void OnConfidenceLevelChanged();
スタック トレース: System.Data.Common.Internal.Materialization.Shaper.ErrorHandlingValueReader 1.GetValue(DbDataReader reader, Int32 ordinal)
at System.Data.Common.Internal.Materialization.Shaper.GetPropertyValueWithErrorHandling[TProperty](Int32 ordinal, String propertyName, String typeName)
at lambda_method(Closure , Shaper )
at System.Data.Common.Internal.Materialization.Coordinator
1.ReadNextElement(Shaper shaper) で System.Data.Common.Internal.Materialization.Shaper 1.SimpleEnumerator.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator
2.MoveNext() で System.Collections.Generic.List 1..ctor(IEnumerable
1 Collection) の System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) の ..Models.Repository.DataAccess.GetExtractAllLimits() の ...DataAccess.cs:19 行目の ...GetExtractAllLimits() の . ...Service.svc.cs: SyncInvokeGetExtractAllLimits(Object , Object[] , Object[] ) の 17 行目 System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object インスタンス、Object[] 入力、Object[]& 出力) でSystem.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
プロパティを nullable に設定し、プロパティを削除して再度追加しようとしましたが、まだ何も機能しません。
ほとんど同じ質問に回答のない古い投稿がいくつかあることに気付きました。これは EF のバグですか?