我有一个在构造函数中有一些定义的类:
public class Card
{
public Card()
{
DateCreated = DateTime.Now;
}
public virtual DateTime DateCreated { get; set; }
}
如果我调用以下内容:
_repository.GetCard(cardId);
其中 _repository 包含以下内容:
public Card GetCard(int cardId)
{
var card = _db.Cards.FirstOrDefault(s => s.CardId == cardId); // happens immediately after this is hit
if (card != null) return card;
return null;
}
构造函数代码被命中(我设置了一个断点)。为什么是这样?我是 C# 的新手 - 我希望构造函数只有在通过var newCard = new Card();
.
这现在给我带来了问题,因为对于某些对象,我在构造函数中创建了新对象(例如记录实体创建的历史条目) - 因为构造函数代码经常被命中,所以现在创建了太多对象。
_db 代码:
public class AppDbContext : DbContext, IAppDbContext
{
public AppDbContext() : base("name=TestConnection")
{
}
public AppDbContext(string connectionString) : base(connectionString)
{
}
public DbSet<Card> Cards { get; set; }
void IAppDbContext.Save()
{
SaveChanges();
}
IQueryable<Card> IAppDbContext.Cards
{
get { return Cards; }
}
}