まず、Entity Frameworkコードで作業しています。負の10進値をSQL Serverデータベースに保存しようとすると、エラーが発生します。保存しようとしているモデルを以下に示します。負の10進値を保存できません。
public class Material
{
public Material()
{
Categories = new List<Category>();
}
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
[Required]
public string Name { get; set; }
public string Description { get; set; }
[Required]
public DateTime Taken { get; set; }
public decimal? Latitude { get; set; }
public decimal? Longitude { get; set; }
public virtual ICollection<Category> Categories { get; set; }
}
ここでは、モデルのマテリアルの小数点(緯度/経度)の精度を設定しようとしています。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Material>().Property(x => x.Latitude).HasPrecision(8, 7);
modelBuilder.Entity<Material>().Property(x => x.Longitude).HasPrecision(8, 7);
}
は、データベース内の列の情報は、次のようになります。
dbo.Materials.Latitude (decimal(8, 6), null)
dbo.Materials.Longitude (decimal(8, 6), null)
私は-1m
すべてが正常に動作しますように負の値を保存しようとします。しかし、すぐに、より大きな値または値を-123
または-123.123456
のような小数で保存しようとすると、保存時にデータコンテキストが常に例外をスローします。
私は取得しています例外はこれです:
彼らの関係のために外部キー プロパティを公開していないエンティティを保存中にエラーが発生しました。単一のエンティティを例外のソース として識別できないため、EntityEntriesプロパティは を返します。エンティティタイプに外部キーのプロパティを公開することで、保存時の例外の処理を容易に行うことができます( )。詳細については、 InnerExceptionを参照してください。
を:私たちは、これが問題の原因であるかもしれないことを見ることができ、内部例外に探し{「パラメータ値は 『-117.246108』範囲外です。」}
この問題を解決するにはどうすればよいですか?
データセルのタイプを教えてください。 – Likurg
そのフィールドのスキーマはどのように見えますか? –