如何使用Entity Framework快速删除表中的所有行?
我目前正在使用:
var rows = from o in dataDb.Table
select o;
foreach (var row in rows)
{
dataDb.Table.Remove(row);
}
dataDb.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
但是,执行需要很长时间.
还有其他选择吗?
我正在使用AcceptVerbs
Scott Gu的Preview 5博客文章中详述的方法来处理ASP.NET MVC中的表单条目:
所以我没有必要使用TempData
.也就是说,我现在必须在此过程中添加一个"确认"步骤,似乎需要使用TempData
.
出于某种原因,我厌恶使用TempData
- 它是一种可以设计的东西.
这是一个有效的问题,还是我在弥补?
我试图将十进制数截断为小数位.像这样的东西:
5.467 -> 5.46
985.943 -> 985.94
Run Code Online (Sandbox Code Playgroud)
toFixed(2)
做正确的事情,但它完成了价值.我不需要四舍五入的值.希望这在javascript中是可能的.
我试图从我的ASP.Net MVC控制器中的磁盘读取XSLT文件.我正在做的是以下内容:
string filepath = HttpContext.Request.PhysicalApplicationPath;
filepath += "/Content/Xsl/pubmed.xslt";
string xsl = System.IO.File.ReadAllText(filepath);
Run Code Online (Sandbox Code Playgroud)
但是,在forums.asp.net上这个帖子的一半,有以下引用
HttpContext.Current是邪恶的,如果你在你的mvc应用程序中的任何地方使用它,你做错了,因为你不需要它.
虽然我没有使用Current
,但我想知道在MVC中确定文件的绝对物理路径的最佳方法是什么?出于某种原因(我不知道为什么!)HttpContext
对我来说不合适.
在ASP.Net MVC中是否有更好的(或推荐/最佳实践)方法从磁盘读取文件?
我刚刚安装了MVC 4 Beta,现在我的MVC 3应用程序无法编译,出现以下错误:
类型'System.Web.Mvc.ModelClientValidationRule'存在于'c:\ Program Files(x86)\ Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll'和'c:\程序文件(x86)\ Microsoft ASP.NET\ASP.NET网页\ v2.0\Assemblies\System.Web.WebPages.dll'C:\ Users\michaeljo\Documents\src\patientgive\Phc.Mvc\Infrastructure\PasswordStrengthAttribute.cs
看起来这已被移动到不同的程序集,因为两个程序集都在GAC中,所以它不知道使用哪个程序集.
所以我遇到了这个(恕我直言)非常好的想法,使用返回值和异常的复合结构 - Expected<T>
.它克服了传统错误处理方法(例外,错误代码)的许多缺点.
见安德烈Alexandrescu的的谈话(系统误差在C++处理)和它的幻灯片.
异常和错误代码具有基本相同的使用方案,其中函数返回某些内容而不返回内容.Expected<T>
另一方面,似乎只针对返回值的函数.
所以,我的问题是:
Expected<T>
在实践中尝试过?更新:
我想我应该澄清一下我的问题.在Expected<void>
专业化是有道理的,但我更感兴趣的是它如何被使用-在一致的使用成语.实现本身是次要的(并且很容易).
例如,Alexandrescu给出了这个例子(有点编辑):
string s = readline();
auto x = parseInt(s).get(); // throw on error
auto y = parseInt(s); // won’t throw
if (!y.valid()) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
这段代码以一种自然流动的方式"干净".我们需要价值 - 我们得到它.但是,expected<void>
有人必须捕获返回的变量并对其执行某些操作(如.throwIfError()
或类似的东西),这不是那么优雅.显然,.get()
无效是没有道理的.
那么,如果你有另一个函数,比如说toUpper(s)
,哪个函数就地修改了字符串并没有返回值,你的代码会是什么样子?
我正在研究一个尝试从PHP连接到MongoDB数据库的Web应用程序.在90%的页面加载中一切正常,但在其他10%中,当我尝试更新集合时会抛出以下异常:
Fatal error: Uncaught exception 'MongoCursorException' with message 'No such file or directory' in D:\webDev\webSites\str\dev3\_global_classes\User.php:40
Stack trace:
#0 D:\webDev\webSites\str\dev3\_global_classes\User.php(40):
MongoCollection->update(Array, Array, Array)
#1 D:\webDev\webSites\str\dev3\_init\_init.php(8):
User->__construct(NULL)
#2 D:\webDev\webSites\str\dev3\index.php(3):
include('D:\webDev\webSi...')
#3 {main} thrown in D:\webDev\webSites\str\dev3\_global_classes\User.php on line 40
Run Code Online (Sandbox Code Playgroud)
PHP代码:
public function __construct($SESSIONID = null) {
User::$_users_collection = Main::$_mongo->selectCollection("users");
...
$query = array('session_id' => session_id());
$expiry = time() + Main::$_lifetime;
$data = array(
'session_id' => session_id(),
'expiry' => (string)$expiry,
'ip' => $_SERVER['REMOTE_ADDR']
);
$options = array(
'upsert' => true,
'safe' => true
); …
Run Code Online (Sandbox Code Playgroud) 如果您使用过ASP.NET MVC 4,您会注意到Internet应用程序的默认设置是使用SimpleMembership提供程序,这一切都很好,并且工作正常.
问题是默认的数据库生成,他们有一个UserProfile
像这样定义的POCO :
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
..然后生成如下:
using (var context = new UsersContext())
{
if (!context.Database.Exists())
{
// Create the SimpleMembership database without Entity Framework migration schema
((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
}
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,数据库生成正常,工作没有问题.但是,如果我要像这样更改POCO并删除数据库:
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string EmailAddress { get; set; }
public string FirstName { get; …
Run Code Online (Sandbox Code Playgroud) 一种特殊情况的问题:
System.Diagnostics.Process.Start(..)
此时我需要获取进程的UI(或UI句柄).假设我无法改变流程的行为以使其更容易(或更安全).
我在网上四处看看,但我承认我没有看一个多小时.看起来像它应该有点琐碎:-(
c# ×4
asp.net-mvc ×2
.net ×1
c++ ×1
c++11 ×1
filepath ×1
javascript ×1
linq ×1
mongodb ×1
mongodb-php ×1
php ×1
sql ×1
tempdata ×1
windows ×1
wpf ×1