私は Entity Framework を使用するように強制し始めたばかりですが (私はかなり遅れていることを知っています)、最初のハードルで落ちました。
私が書いているプログラムは、PLC が true になるのを少しだけ監視するだけです。true になるとイベントが発生し、値 (現時点ではランダム) が SQL に入力されます。次に、ビットを false に設定します。
私が抱えている問題は、イベントが 1 回発生し、エントリが追加され、ビットが false に設定されることです。ただし、イベントが再びトリガーされることはありません。すべての SQL ビットをコメントアウトし、ビットを false に設定すると、完全に機能し、複数回起動します。
これが私が持っているほとんどのコードです。
どんな助けでも本当に感謝しています。
static void Main(string[] args)
{
PlcListener plcListener = new PlcListener();
plcLister.BitChanged += (bitVal) => On_BitChanged(bitVal, plcListener)
plcListner.Start();
}
private static void On_BitChanged(bool bitVal, PlcListener plcListner)
{
SqlEntities sqlEntity = new SqlEntities();
SampleData sampleData = new SampleData(){ Data = new Random().Next(); };
sqlEntity.AddToSampleDatas(sampleData);
sqlEntity.SaveChanges();
plcListener.Confirm();
}
public class PlcListener
{
public void Start()
{
OPCServer opcServer = new OPCServer();
opcServer.DataChanged += On_DataChanged;
}
public void Confirm()
{
//Code to set bit to false
}
public void On_DataChanged(bool bitVal.......)
{
if(bitVal)
{
BitChangedEventHandler handler = BitChanged;
if (handler != null)
{
handler(bitVal);
}
}
}
public delegate void BitChangedEventHandler(bool bitValue);
public event BitChangedEventHandler BitChanged;
}