我有一个关于.AsNoTracking()
扩展的问题,因为这一切都很新而且很混乱.
我正在使用网站的每请求上下文.
我的很多实体都没有改变,所以不需要跟踪,但我有以下场景,我不确定数据库会发生什么,甚至在这种情况下它是否有所不同.
这个例子就是我目前正在做的事情:
context.Set<User>().AsNoTracking()
// Step 1) Get user
context.Set<User>()
// Step 2) Update user
Run Code Online (Sandbox Code Playgroud)
这与上面相同,但从.AsNoTracking()
步骤1中删除:
context.Set<User>();
// Step 1) Get user
context.Set<User>()
// Step 2) Update user
Run Code Online (Sandbox Code Playgroud)
步骤1和2使用相同的上下文,但在不同的时间发生.我无法解决的是,是否存在任何差异.由于步骤2是更新,我猜两个都会打两次数据库.
谁能告诉我有什么区别?
我创建了一个带有一些属性的界面.
如果接口不存在,则类对象的所有属性都将设置为
{ get; private set; }
Run Code Online (Sandbox Code Playgroud)
但是,在使用接口时不允许这样做,这样可以实现,如果是这样,怎么办?
我有一个小方法,看起来像这样:
public void SetOptions<T>() where T : Enum
{
int i = 0;
foreach (T obj in Enum.GetValues(typeof(T)))
{
if (i == 0)
DefaultOption = new ListItem(obj.Description(), obj.ToString());
i++;
DropDownList.Items.Add(new ListItem(obj.Description(), obj.ToString()));
}
}
Run Code Online (Sandbox Code Playgroud)
基本上,我从枚举中填充下拉列表.Description()
实际上是枚举的扩展方法,所以T
绝对是一个enum
.
但是,我想像obj
你这样对任何枚举进行(int)obj
转换,但是我得到一个错误,说我无法将T转换为int.有没有办法做到这一点?
我有一个从EF模型返回数据的方法.
我收到了上述消息,但我无法告诉我们如何规避问题.
public static IEnumerable<FundedCount> GetFundedCount()
{
var today = DateTime.Now;
var daysInMonth = DateTime.DaysInMonth(today.Year, today.Month);
var day1 = DateTime.Now.AddDays(-1);
var day31 = DateTime.Now.AddDays(-31);
using (var uow = new UnitOfWork(ConnectionString.PaydayLenders))
{
var r = new Repository<MatchHistory>(uow.Context);
return r.Find()
.Where(x =>
x.AppliedOn >= day1 && x.AppliedOn <= day31 &&
x.ResultTypeId == (int)MatchResultType.Accepted)
.GroupBy(x => new { x.BuyerId, x.AppliedOn })
.Select(x => new FundedCount(
x.Key.BuyerId,
x.Count() / 30 * daysInMonth))
.ToList();
}
}
Run Code Online (Sandbox Code Playgroud)
FundedCount不是EF enity,MatchHistory是,所以无法理解它为什么抱怨.
所有建议都赞赏.
我有2个连接字符串 - 1个本地,1个用于我的主要生产服务器.当我安装它时,实体框架将App = EntityFramework添加到我的本地字符串(4.1) - 我现在在4.3上.这是做什么的 - 我找不到任何参考?
这是我的本地连接字符串:
<add name="LocalConnection"
providerName="System.Data.EntityClient"
connectionString="metadata=
res://*/;
provider=System.Data.SqlClient;
provider connection string='
Data Source=.\SQLEXPRESS;
AttachDBFilename=C:\mypath\MyDb.mdf;
Integrated Security=True;
User Instance=True;
MultipleActiveResultSets=True;
App=EntityFramework'" />
Run Code Online (Sandbox Code Playgroud)
只是好奇!
我有一个存储在我的web.config文件中的值,我想在网站发布时更改.我想将它从TEST更改为LIVE.
<appSettings>
<add key="RequestMode" value="TEST" />
// other keys here
</appSettings>
Run Code Online (Sandbox Code Playgroud)
这是否可以使用web.config转换语法?如果是这样,怎么样?
谢谢.
我有一个包含DIV,我用作响应网格的一部分.它扩展到允许的最大宽度1280px,然后大型设备出现边距.这是我的CSS +一点点.
.container
{
margin-left:auto;
margin-right:auto;
max-width:1280px;
padding:0 30px;
width:100%;
&:extend(.clearfix all);
}
Run Code Online (Sandbox Code Playgroud)
但是在某些情况下我想横向溢出 - 假设我有一个需要全宽的背景图像或颜色.我不擅长CSS - 但是有可能实现我想要的吗?
我有一个Web应用程序,它有许多类库项目.下面是一些示例代码.
public static class LenderBL
{
static string LenderXml { get { return "MyPathHere"; } }
public static LenderColl GetLenders()
{
var serializer = new XmlSerializer(typeof(LenderColl));
using (XmlReader reader = XmlReader.Create(LenderXml))
{
return (LenderColl)serializer.Deserialize(reader);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我通常会使用Server.MapPath来获取属性LenderXml的路径,但是当我在类库中使用它时,它将返回父解决方案的路径,而不是类库项目的路径.
有没有办法获得类库项目本身的路径?
提前致谢.
我有一个下拉列表,我需要存储比标准列表项允许的更多数据.我采用的方法是为每个列表项添加一个属性.
我监视的变化,可以返回的SelectedIndex,但我不知道如何获取属性从那里回来,或者是否有实现这一目标的任何更简单的方法.
有任何想法吗?
我正在使用Entity Framework 6作为我的数据源.
我创建了一个页面,用他们名字的第一个字母列出供应商,所以首先我们有'A',然后'B'等等.
为了做到这一点,我使用了2个ListView对象 - 它可以很容易地成为一个Repeater,但这并不重要.
虽然我的供应商列表并不广泛,但我用来获取数据的方法非常昂贵,因为在数据绑定期间我必须将其称为27次.我很确定有更好的方法可以解决这个问题,但我不知道我在Linq周围的方式.
我认为必须有一种方法来分组数据,然后循环遍历组的内容.
这是重要的代码.linq用于检索子数据和数据绑定代码:
public static IEnumerable<Supplier> StartsWith(string firstLetter)
{
return Select() // select simply returns all data for the entity
.Where(x => x.Name.StartsWith(firstLetter, StringComparison.OrdinalIgnoreCase));
}
protected void ListViewAtoZ_ItemDataBound(object source, ListViewItemEventArgs e)
{
var item = e.Item;
if (item.ItemType == ListViewItemType.DataItem)
{
var alphanumeric = (string)item.DataItem;
var h2 = item.GetControl<HtmlGenericControl>("HtmlH2", true);
h2.InnerText = alphanumeric;
var childView = item.GetControl<ListView>("ListViewStartsWith", true);
childView.DataSource = LenderView.StartsWith(alphanumeric);
childView.DataBind();
}
}
protected void ListViewStartsWith_ItemDataBound(object source, ListViewItemEventArgs e)
{
var item …
Run Code Online (Sandbox Code Playgroud)