Я пытаюсь запросить данные из базы данных, которая содержит некоторый корейский текст. То же самое работает с другими БД, которые не имеют никакой корейской информации. Должен ли я установить некоторую информацию о культуре? Найденная мной сортировка БД: Korean_Wansung_Unicode_CI_AS
using (DBModel data = new DBModel())
{
//command and parameters prepared here
var SqlCommand = "ProcedureName @LastUpdateDate, @LastUpdateTS";
var SqlParams = new SqlParameter[]
{
new SqlParameter { ParameterName = "@LastUpdateDate", Value =lastDatetime, Direction = System.Data.ParameterDirection.Input },
new SqlParameter { ParameterName = "@LastUpdateTS", Value =lastTS, Direction = System.Data.ParameterDirection.Input }
};
return data.Database.SqlQuery<BP>(SqlCommand, SqlParams).ToList();
}
Это Database.SqlQuery выбрасывает CultureNotFoundException , как показано ниже
Культура не поддерживается.
Наименование параметра: культура
66578 (0x10412) - неверный идентификатор культуры.
at System.Globalization.CultureInfo.GetCultureInfo(Int32 culture)
at System.Globalization.CompareInfo.GetCompareInfo(Int32 culture)
at System.Data.ProviderBase.FieldNameLookup.LinearIndexOf(String fieldName, CompareOptions compareOptions)
at System.Data.ProviderBase.FieldNameLookup.IndexOf(String fieldName)
at System.Data.ProviderBase.FieldNameLookup.GetOrdinal(String fieldName)
at System.Data.SqlClient.SqlDataReader.GetOrdinal(String name)
at System.Data.Entity.Core.Query.InternalTrees.ColumnMapFactory.TryGetColumnOrdinalFromReader(DbDataReader storeDataReader, String columnName, Int32& ordinal)
at System.Data.Entity.Core.Query.InternalTrees.ColumnMapFactory.CreateColumnMapFromReaderAndClrType(DbDataReader reader, Type type, MetadataWorkspace workspace)
at System.Data.Entity.Core.Objects.ObjectContext.InternalTranslate[TElement](DbDataReader reader, String entitySetName, MergeOption mergeOption, Boolean streaming, EntitySet& entitySet, TypeUsage& edmType)
at System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreQueryInternal[TElement](String commandText, String entitySetName, ExecutionOptions executionOptions, Object[] parameters)
at System.Data.Entity.Core.Objects.ObjectContext.<>c__DisplayClass69`1.<ExecuteStoreQueryReliably>b__68()
at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
at System.Data.Entity.Core.Objects.ObjectContext.<>c__DisplayClass69`1.<ExecuteStoreQueryReliably>b__67()
at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation)
at System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreQueryReliably[TElement](String commandText, String entitySetName, ExecutionOptions executionOptions, Object[] parameters)
at System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreQuery[TElement](String commandText, ExecutionOptions executionOptions, Object[] parameters)
at System.Data.Entity.Internal.InternalContext.<>c__DisplayClass14`1.<ExecuteSqlQuery>b__13()
at System.Data.Entity.Internal.LazyEnumerator`1.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
Я пытался сделать то же самое с простым старым способом, чтобы получить данные в виде данных, как-то это работает. Так что же нужно установить в EF?
var SqlCommand = "exec ProcedureName '2018-11-11 16:30:00', 163000";
string constring = System.Configuration.ConfigurationManager.ConnectionStrings["Connection"].ToString();
SqlConnection con = new System.Data.SqlClient.SqlConnection(constring);
SqlCommand cmd = new SqlCommand(SqlCommand, con);
cmd.CommandType = System.Data.CommandType.Text;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);