我一直在寻找一些使用Entity Framework的审计钩子.其中许多都显示旧的/新的价值比较.这对于审计跟踪非常有用,但我正在寻找快照对象.
例如......假设我有一个管理产品的应用程序.产品具有多个属性和关联的其他对象.假设我将对象更改了10次.我们还要说,重要的是我可以查看这些对象更改的屏幕(不是审计跟踪,而是以只读格式实际显示的屏幕).我感兴趣的是能够为所有这10个更改(取决于我想看到的)检索原始EF产品对象(包含所有相关数据)并使用它来绑定到我的屏幕.
如果我正在使用SQL Server,那么我现在应该为序列化对象使用什么类型(XML,blob等)?这样做有意义吗?
我在使用Find()方法的行中得到以下异常(缺少主键)
"表没有主键."
我已经重新检查了数据库,并且所有主键列都已正确设置.
我的代码:
DataTable dt = p.GetAllPhotos(int.Parse(Id));
DataTable temp = new DataTable();
temp = dt.Clone();
temp = (DataTable)(Session["currentImage"]);
DataTable dtvalid = new DataTable();
dtvalid = dt.Clone();
DataRow[] drr = new DataRow[1];
drr[0] = dt.Rows.Find((int.Parse(temp.Rows[0]["photoId"].ToString()))+1);
foreach (DataRow dr in drr)
{
dtvalid.ImportRow(dr);
}
dtvalid.AcceptChanges();'
Run Code Online (Sandbox Code Playgroud) 我有以下情况:
我的页面上有一个gridview:
page1.aspx
Run Code Online (Sandbox Code Playgroud)
我page2.aspx在rad窗口中通过gridview 打开另一个页面(),然后通过page2.aspx我的一些按钮打开最后一页(page3.aspx)rad window.
所有这些步骤都是通过服务器端代码执行的:
protected void OpenNewWindow(string url, int width, int height, int mode)
{
RadWindow newWindow = new RadWindow();
newWindow.NavigateUrl = url;
newWindow.VisibleOnPageLoad = true;
newWindow.KeepInScreenBounds = true;
newWindow.Skin = "Metro";
if (width > 0)
{
newWindow.Width = width;
}
if (height > 0)
{
newWindow.Height = height;
}
newWindow.VisibleStatusbar = false;
if (mode == 0)
{
{
}
//newWindow.OnClientClose = "OnChildWindowClosed";
newWindow.DestroyOnClose = true;
newWindow.InitialBehaviors …Run Code Online (Sandbox Code Playgroud) 我对连接模型和实体框架中的断开连接很困惑.
我使用的是传统的ADO.net(DataReader用于连接模型和DataAdapter断开连接的模型),当我需要发送更多用户需要更新或插入以及在几种情况下断开模型时,我知道我使用连接模型数据到其他进程对内存中的数据进行一些操作并将它们发送回数据库.
现在我在EF中阅读了一些关于连接模型和断开连接模型的文章,我很困惑为什么要将实体明确地附加到断开连接模型中的上下文?我还读过web中的默认行为是断开连接的模型,而WPF中的默认行为是连接模型!
asp.net ado.net entity-framework sqldatareader sqldataadapter
我尝试包括这样的匿名类型:我想要incomelist除了的所有属性CompanyTitle,PeriodTypeName)
var incomeList = ctx.IncomeLists.Include(i => new
{
CompanyTitle = i.CompanyId.ToString() + "/" + i.Company.CompanyName,
PeriodTypeName = i.ListPeriods.Select(lp => lp.PeriodType.PeriodTypeName)
}).ToList()
Run Code Online (Sandbox Code Playgroud)
但我得到以下例外:
Include路径表达式必须引用在类型上定义的导航属性.使用虚线路径作为参考导航属性,使用Select运算符作为集合导航属性.参数名称:路径
结果应该是Gridview的数据源.
问:我面临以下大问题:
从时间到另一个我发现以下异常:
Base-64 char数组的长度无效
我使用加密和解密:
public static string Encrypt(string text)
{
try
{
key = Encoding.UTF8.GetBytes(stringKey.Substring(0, 8));
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
Byte[] byteArray = Encoding.UTF8.GetBytes(text);
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memoryStream,des.CreateEncryptor(key, IV), CryptoStreamMode.Write);
cryptoStream.Write(byteArray, 0, byteArray.Length);
cryptoStream.FlushFinalBlock();
return Convert.ToBase64String(memoryStream.ToArray());
}
catch (Exception ex)
{
string message = ex.Message;
}
return string.Empty;
}
public static string Decrypt(string text)
{
try
{
key = Encoding.UTF8.GetBytes(stringKey.Substring(0, 8));
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
text = text.Replace(" ", "+")
Byte[] …Run Code Online (Sandbox Code Playgroud) 我有这么长的过程可能需要1个小时.
这个过程包括每年运行的许多步骤.我的主要问题是:
如何在此过程中为最终用户提供信息丰富的实时进度,而不仅仅是虚拟装载栏.
int index = Convert.ToInt32(e.CommandArgument);
bool done = false;
int res = -1;
int fromVal = int.Parse(gv_balance.Rows[index].Cells[0].Text);
int toVal = int.Parse(gv_balance.Rows[index].Cells[1].Text);
int finMonth = 1;
int finYear = 0;
int EndServ = 0;
int calcYear = int.Parse(gv_balance.Rows[index].Cells[2].Text);
int total;
total = ((toVal - fromVal) + 1);
string msg = string.Empty;
int confirm = Balance.GetConfirmState(calcYear);
if (confirm == 0)
{
RadProgressContext progress = RadProgressContext.Current;
progress.Speed = "N/A";
finYear = fromVal;
for (int i = fromVal; i <= toVal; i++) …Run Code Online (Sandbox Code Playgroud) 我想在下拉列表中绑定员工列表,具有自动完成功能,以便用户可以搜索正确的名称.i使用RadComboBox
我有两个主要问题:
1-关于5000item 的列表非常大.所以在浏览器中绑定大量数据会使其挂起或变慢.(性能问题)
根据Telerik文档
将数据源设置为RadComboBox.使用DataSourceID或DataSource属性执行此操作,并将DataTextField和DataValueField属性设置为数据源中的相应字段.(请注意,使用DataSource时,必须在每个回发上设置属性,最方便的是在Page_Init中.)将EnableAutomaticLoadOnDemand设置为true.
所以我每次都要调用以下方法Page_Init!!!
protected void BindInnerInstructors()
{
ddl_inner_sup.Items.Clear();
ddl_inner_sup.DataSource = Utilities.GetAllInnerInstructors();
ddl_inner_sup.DataValueField = "emp_num";
ddl_inner_sup.DataTextField = "name";
ddl_inner_sup.DataBind();
}
Run Code Online (Sandbox Code Playgroud)
2-尝试设置组合框的选择时,未将对象引用设置为对象的实例.
我通过这个克服了这个问题.
我有关于4下拉列表,但每个人都必须根据事件绑定,但我必须绑定所有这些page_init.
我将很感激这个问题的详细答案.
如果我有一个类,以某种方式表示我的数据库中的特定表的映射..此类包含约30个属性.
我创造了CRUD Methods.
并发现自己需要另一个(UPDATE)方法,它应该只更新两个字段.
我应该用一个简单的例子以良好的方式做什么?
asp.net ×9
c# ×9
ado.net ×2
ajax ×2
telerik ×2
.net ×1
audit ×1
createquery ×1
encryption ×1
linq ×1
mysql ×1
performance ×1
progress-bar ×1
radcombobox ×1
radwindow ×1
signalr ×1
versioning ×1