56 lines
1.7 KiB
C#
56 lines
1.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using Cmdjy.Dal.Tables;
|
|
using System.Data.Entity;
|
|
using Cmdjy.Bll;
|
|
|
|
namespace Cmdjy.Dal.Queryes
|
|
{
|
|
public interface IHisPrescriptionQuery:IDbQuery<HisPrescriptionInfo> { }
|
|
|
|
public class HisPrescriptionQuery:IHisPrescriptionQuery
|
|
{
|
|
public Lazy<ICache> Cache { get; set; }
|
|
|
|
public HisPrescriptionQuery() {
|
|
this.Cache = new Lazy<ICache>(() => CacheFactory.Cache);
|
|
}
|
|
|
|
public IEnumerable<HisPrescriptionInfo> GetAll() {
|
|
using(var db = new DjyDbContext()) {
|
|
return db.PrescriptionInfos.ToList();
|
|
}
|
|
}
|
|
|
|
public HisPrescriptionInfo GetOne<TKey>(TKey id) {
|
|
var key = getKey(id.ToString());
|
|
var val = this.Cache.Value.GetData<HisPrescriptionInfo>(key);
|
|
if(val == null) {
|
|
using(var db = new DjyDbContext()) {
|
|
val = db.PrescriptionInfos.Find(id);
|
|
if(val != null) this.Cache.Value.SetData(key,val);
|
|
}
|
|
}
|
|
return val;
|
|
}
|
|
|
|
public void Insert(HisPrescriptionInfo obj) {
|
|
using(var db = new DjyDbContext()) {
|
|
db.Entry(obj).State = EntityState.Added;
|
|
db.SaveChanges();
|
|
}
|
|
var key = getKey(obj.Id.ToString());
|
|
this.Cache.Value.SetData(key,obj);
|
|
}
|
|
|
|
IQueryable<HisPrescriptionInfo> IDbQuery<HisPrescriptionInfo>.GetQuery(DjyDbContext db) {
|
|
return db.PrescriptionInfos.AsQueryable();
|
|
}
|
|
|
|
private string getKey(string id) {
|
|
return $"Db:HisPrescriptionInfo:Id:{id}";
|
|
}
|
|
}
|
|
} |