私はそうのようなテーブルを持っている:EF 6を使用してMySQLのコネクタ6.9.8とMySQL 5.5.21場合DBFirst - MySQL ConnectorとEF6を使用して、StoreGeneratedPattern = Computedとしてタイムスタンプ列を認識する方法?
CREATE TABLE `incidentdata` (
`IncidentDataID` int(11) NOT NULL AUTO_INCREMENT,
`GUID` binary(16) NOT NULL,
`LastModified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`Incident_ID` int(11) NOT NULL,
`Parameter_ID` int(11) NOT NULL,
`Value` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`IncidentDataID`),
UNIQUE KEY `GUID_UNIQUE` (`GUID`),
KEY `FK_INCDATA_INC` (`Incident_ID`),
KEY `FK_INCDATA_PAR` (`Parameter_ID`),
CONSTRAINT `FK_INCDATA_INC` FOREIGN KEY (`Incident_ID`) REFERENCES `incidents` (`IncidentID`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `FK_INCDATA_PAR` FOREIGN KEY (`Parameter_ID`) REFERENCES `eventparameters` (`ParameterID`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8$$
、DBを介してモデルを更新する第一常にStoreGeneratedPattern = None
すべきLastModified
列を設定します。
私はこのテーブルにレコードを挿入すると、LastModified
カラムは常に0である - 私はレコードを更新すると、所望のようSystem.DateTime
= 0の.NETのデフォルト値は、そのLastModified
値は次にCURRENT_TIMESTAMP
に更新されるからです。
私は回避策として使用できる2つのオプションを発見した:手動StoreGeneratedPattern =「計算結果」を変更
- を。
NULL
を許可するように列を設定してから、EFに挿入するときに、LastModified
の値を明示的にnullに設定します。これは、毎日です。
お分かりのように、どちらの方法も何かを覚えておく必要があります。忘れてしまったことです。
また、OnModelCreating()を使用してこの列のComputed
プロパティを強制しようとしましたが、動作しないようです。
DBからモデルを更新するときに、LastModified
列がComputed
に正しく認識される方法はありますか?