控制器对模型进行几次调用,然后将一些数据返回给视图.遗憾的是,这个视图(这不是我的错),包含大量的内联查询和对模型的更多调用,是的,我知道.无论如何,我的任务是优化这个非常慢的页面,我试图弄清楚我怎么能分辨出哪些东西占用的时间最多.我只是将一个计时器放在页面所做的每个"事物"的开始和结束处,然后将它们输出到带有行号或其他内容的日志中.但不确定最准确的方法是什么.
//in controller
StartTimer();
var something = model.something.getsomething(someID);
StopTimerAndLog(3); //line number
<!-- in view -->
<%StartTimer();
var something = model.somethingelse.getanotherthing(someotherID);
StopTimerAndLog(2);%>
Run Code Online (Sandbox Code Playgroud)
等等等等...
那么问题仍然是关于使用什么时间机制,我敢肯定必须有一个问题.但我不知道我的情况是否有任何独特之处......任何想法?
string actionName = "Users";
[HttpGet]
[ActionName(actionName)]
public ActionResult GetMe()
{
}
Run Code Online (Sandbox Code Playgroud)
... give:非静态字段,方法或属性需要对象引用
这只是一个测试,有没有办法做到这一点?如果是这样,我可以重新使用相同的Controller并可能动态创建新的URI ...对吗?
//will need these in a second
string a = "5";
string b = "7";
string c = "3";
Run Code Online (Sandbox Code Playgroud)
所以因为C#会在内存中分配更多的字符串
string mystring = "";
mystring += a;
mystring += b;
mystring += c;
Run Code Online (Sandbox Code Playgroud)
会慢得多
StringBuilder sb = new StringBuilder();
sb.Append(a).Append(b).Append(c);
Run Code Online (Sandbox Code Playgroud)
那么,那么:
string mystring = "";
mystring += a + b + c;
Run Code Online (Sandbox Code Playgroud)
它只是+=缓慢的部分,或者+也是罪魁祸首?
我使用以下查询来查找重复项:
SELECT userID,
COUNT(userID) AS NumOccurrences
FROM userDepartments
GROUP BY userID
HAVING ( COUNT(userID) > 1 )
Run Code Online (Sandbox Code Playgroud)
然后我尝试添加内部联接,以便我可以看到匹配的用户名,这些用户名存储在不同的表中.
SELECT userDepartments.userID, users.firstname, users.lastname,
COUNT(userID) AS NumOccurrences
FROM userDepartments INNER JOIN users ON userDepartments.userID = users.userID
GROUP BY userID
HAVING ( COUNT(userID) > 1 )
Run Code Online (Sandbox Code Playgroud)
但它给了我一个错误,说users.firstname不是某些聚合函数或其他东西的一部分......
有谁知道我如何获得计数,只显示超过1个部门的用户,并从另一个表中获取名字和姓氏,以便我可以获得分配了多个部门的用户名列表?
编辑:这就是为我工作的最终......
SELECT firstname, lastname
FROM tbl_users
WHERE (userID IN
(SELECT userID
FROM tbl_usersDepts
GROUP BY userID
HAVING (COUNT(userID) > 1)))
Run Code Online (Sandbox Code Playgroud) <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
Run Code Online (Sandbox Code Playgroud)
但是我得到了这个错误...尝试使它们匹配并且一切,它假设是什么?
Server Error in '/' Application.
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: ASPNET: Make sure that the class defined in this code file matches the 'inherits' attribute, and that it extends the correct base class (e.g. Page or UserControl).
Source Error:
Line 14: namespace FlashCards
Line …Run Code Online (Sandbox Code Playgroud) 我正在创建存储过程,从多个表中返回我需要的大量数据,但是这些表共享一些重复的列名.它在SQL中运行良好,但我想知道一旦我从DataSet访问它们作为DataRows,将会发生什么以及如何区分它们.谁知道?
public static string CalculateSHA1(string text, Encoding enc)
{
byte[] buffer = enc.GetBytes(text);
SHA1CryptoServiceProvider cryptoTransformSHA1 = new SHA1CryptoServiceProvider();
string hash = BitConverter.ToString(cryptoTransformSHA1.ComputeHash(buffer)).Replace("-", "");
return hash;
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
VStudio一直对我大吼大叫,因为我到目前为止最具体的是Byte末尾的括号?:
Private Sub CalculateSHA1(ByVal text As String, ByVal enc As Encoding)
Dim buffer As Byte[] = enc.GetBytes(text);
End Sub
Run Code Online (Sandbox Code Playgroud) var temp = (from assetVisit in db.AssetVisits
join assetBundle in db.AssetBundles on assetVisit.AssetID equals assetBundle.AssetID
join groupBundle in db.GroupBundles on assetBundle.BundleID equals groupBundle.BundleID
join userGroup in db.UserGroups on groupBundle.GroupID equals userGroup.GroupID
where assetVisit.CompanyID == companyID &&
userGroup.UserID == userID
select new { AssetID = assetVisit.AssetID, Count = assetVisit.AccessCounter }).Distinct();
IQueryable<Asset> final = (from t in temp
join asset in db.Assets on t.AssetID equals asset.AssetID
where asset.IsActive == true
&& asset.AssetTypeID == assetType
&& asset.ShowInResults == true
&& (asset.CompanyID == companyID …Run Code Online (Sandbox Code Playgroud) Compiler Error Message: CS1002: ; expected
Source Error:
Line 56: </div><!--end #Asset-->
Line 57:
Line 58: <% KODmvc.Models.AssetRatingViewModel ratingModel = ViewData["RatingViewModel"] as KODmvc.Models.AssetRatingViewModel(); %>
Line 59: <% Html.RenderPartial("RatingView", ratingModel); %>
Line 60:
Source File: c:\RatingSystem\Views\Asset\ArticleView.aspx Line: 58
Run Code Online (Sandbox Code Playgroud)
是什么赋予了?58号线上的分号是......
http://www.ironpython.info/index.php/Using_Python_Classes_from_.NET/CSharp_IP_2.6
string code = @"
print 'test = ' + test
class MyClass:
def __init__(self):
pass
def somemethod(self):
print 'in some method'
def isodd(self, n):
return 1 == n % 2
";
Run Code Online (Sandbox Code Playgroud)
是'@'C#的一部分还是IronPython添加的东西?如果是后者,你如何在C#中做到这一点,某种运算符重载(基本上我可以让'@'做我想做的事情等等)?示例实现会很棒.否则,这里发生了什么?
c# ×5
asp.net-mvc ×3
asp.net ×2
sql ×2
action ×1
benchmarking ×1
controller ×1
count ×1
dataset ×1
inner-join ×1
ironpython ×1
linq-to-sql ×1
optimization ×1
string ×1
uri ×1
vb.net ×1
viewmodel ×1