我想實現nlog到每個動作添加一個元素。 所以當我做myContext.Society.Add()時,我想記錄一些東西。 我創建了一個類DbSetExtension
並修改了上下文StockContext
以使用DbSetExtension<T>
代替DbSet
。在實體框架中繼承DbSet <TEntity>代碼優先NullReference
public class DbSetExtension<T> : DbSet<T> where T : class
{
public override T Add(T entity)
{
LoggerInit.Current().Trace("Add Done");
return base.Add(entity);
}
}
當我啓動程序時,我注意到當我訪問myContext.Society.Add時。 社會爲空。所以我想我錯過了我的課DbSetExtension
但我沒有找到。
public class StockContext : DbContext
{
public StockContext()
: base("StockContext")
{
}
public DbSet<HistoricalDatas> HistoricalDatas { get; set; }
public DbSet<Society> Society { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
你有什麼想法, 問候, 亞歷
[更新] 代碼允許添加。 如果我用DbSet替換DbSetExtension,則相同的代碼有效。 所以我的假設是我錯過了一些東西,當我從DbSet繼承。
public bool SetSymbols()
{
CsvTools csvThreat = new CsvTools();
List<Eoddata> currentEnum =
csvThreat.ExtractData<Eoddata>(ConfigurationManager.GetString("FilePathQuotes", ""));
currentEnum.ForEach(
c =>
{
//LoggerInit.Current().Trace("Add Done");
Sc.Society.Add(
new Society()
{
RealName = c.Description,
Symbol = String.Format("{0}.PA", c.Symbol),
IsFind = !String.IsNullOrEmpty(c.Description)
});
});
if (Sc.SaveChanges() > 0)
return true;
return false;
}
可以大家分享的這部分內容代碼:'myContext.Society.Add.' – renakre 2015-04-06 14:39:34
我添加了關於動作添加的代碼? – user2416437 2015-04-06 20:24:02
我添加了添加動作的代碼。 – user2416437 2015-04-06 20:24:18