テーブルに挿入するコードがあります。単純に、私は構造を持つテーブルを持っているEntity Frameworkが断続的にバイトフィールドを255に設定しました
表1:
- のId int型のPK
- がステータスtinyint型
当社PRODに掘り後、私はことを観察型TINYINT値が範囲(1-3)になると、EFは値を255に間欠的にデフォルト設定している可能性があります。 255はSQL Serverのtinyintの最大値ですが、テーブル定義とEDMXの両方にデフォルトはありません。
使用法:
//OUTAGE_TYPE
public enum OUTAGE_TYPE
{
Unknown = -1,
SwitchingPlan = 1,
PlannedIncident = 2,
UnplannedIncident = 3
}
//CREATE INSTANCE
var outage = new Outage
{
OutageTypeId = (byte)OUTAGE_TYPE.SwitchingPlan,
OutageStatusId = (byte)OUTAGE_STATUS.Approved,
IncidentRID = incident.RID,
WorkRID = incident.WorkRID,
ETR = incident.ETR,
DateInserted = Time.Now(),
DateUpdated = Time.Now()
};
キャプチャSQL:
INSERT [dbo].[Outage]([OutageTypeId], [OutageStatusId], [IncidentRID], [WorkRID], [ETR], [DateInserted], [DateUpdated])
VALUES (@0, @1, @2, NULL, @3, @4, @5)
SELECT [Id]
FROM [dbo].[Outage]
WHERE @@ROWCOUNT > 0 AND [Id] = scope_identity()
-- @0: '255' (Type = Byte, Size = 1)
-- @1: '1' (Type = Byte, Size = 1)
-- @2: 'INC 11000700' (Type = String, Size = 255)
-- @3: '05-08-2016 10:05:52' (Type = DateTime2)
-- @4: '05-08-2016 22:05:22' (Type = DateTime2)
-- @5: '05-08-2016 22:05:22' (Type = DateTime2)
-- Executing at 06-08-2016 00:06:00 +02:00
エラー:
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Outage_OutageType". The conflict occurred in database "ONSP", table "dbo.OutageType", column 'Id'.
は、私は多分あなたたちは前にこれを経験している、私のローカルマシン上で再現することができませんでした。どうもありがとう。
に生じるであろうではありません。うまくいけば、実際の*コードを質問に含めることを知っていればいいと思います。オリジナルの質問に基づいて、誰も答えることができなかったのです。しかし、あなたが質問を編集し、同じ問題を抱えている他の人を助けることができる良い答えを与えたことは良いことです。 – hvd
はい、元のポストでUknown = 0でした。なぜなら、私たちのPRODのリリースブランチからではなく、現在のブランチからコードをコピーしたからです。そのために残念。 – rdagumampan