我需要在IIS7(Vista Home)中调试我正在开发的网站(ASP.NET MVC3,Razor,.NET 4,VS2010 SP1(作为管理员))并收到错误:
IIS未列出与启动URL匹配的网站.
为了测试它是否必须对应用程序的设置做一些事情,我确实从头开始创建一个空的新ASP.NET MVC3网站,为IIS设置,创建虚拟目录,用F5启动,我工作正常!
我再次创建了一个具有完全相同设置的第二个网站项目(只是为了确定),这也按预期启动.
这导致我认为我有一些配置问题!?但是什么?在过去,我使用IIS非常罕见,所以我的知识在某种程度上限制在这个方向.
任何提示?
正如标题暗示:
怎么可能在代码第一种方法中告诉实体框架4.1,我确实希望某些属性(特别是类型字符串)的长度为256或nvarchar(max),或者......
所以,如果这是我的模型
public class Book{
public string Title { get; set; } //should be 256 chars
public string Description {get;set} //should be nvarchar(max)
}
Run Code Online (Sandbox Code Playgroud)
怎么定义?
提前致谢!
我在RIA服务(VS2010Beta2)中迈出了第一步,我遇到了这个问题:创建了一个EF模型(没有POCO),它上面的通用存储库和一个RIA服务(托管在ASP.NET MVC应用程序中)并试图获取数据从ASP.NET MVC应用程序:运作良好.下一步:Silverlight客户端.获得了对RIAService(通过其上下文)的引用,查询了存储库的所有记录并将它们也引入了SL应用程序(使用此代码示例):
private ObservableCollection<Culture> _cultures = new ObservableCollection<Culture>();
public ObservableCollection<Culture> cultures
{
get { return _cultures; }
set
{
_cultures = value;
RaisePropertyChanged("cultures");
}
}
Run Code Online (Sandbox Code Playgroud)
....
//Get cultures
EntityQuery<Culture> queryCultures = from cu in dsCtxt.GetAllCulturesQuery()
select cu;
loCultures = dsCtxt.Load(queryCultures);
loCultures.Completed += new EventHandler(lo_Completed);
Run Code Online (Sandbox Code Playgroud)
....
void loAnyCulture_Completed(object sender, EventArgs e)
{
ObservableCollection<Culture> temp=
new ObservableCollection<Culture>loAnyCulture.Entities);
AnyCulture = temp[0];
}
Run Code Online (Sandbox Code Playgroud)
问题在于:每当我尝试编辑记录的某些数据时(在本例中为第一条记录),我都会收到此错误:"Culture"类型的EntitySet不支持"编辑"操作.
我认为我做了一些奇怪的事情,并试图创建一个Culture类型的对象并为其赋值:它工作得很好!
我错过了什么?我必须声明一个EntitySet吗?我必须标记它吗?我必须......什么?
提前致谢
在一个新的WPF项目(VS2010)中,我第一次使用Unity 2.在这个项目中,我使用以下结构:
解
WPF项目
类库1
班级图书馆2
班级图书馆3 ....
使用Unity注册不同类型是在WPF Project中使用以下代码段完成的:
IUnityContainer container = new UnityContainer()
.RegisterType<IObjectContext, ObjectContextAdapter>()
.RegisterType<IConnectionStringProvider, ConnectionStringProvider>()
.RegisterType(typeof(IRepository<>), typeof(Repository<>));
Run Code Online (Sandbox Code Playgroud)
现在让我说我想<Orders在类库1中解析Repository > constructor-inject.显然,容器在其他项目中并不为人所知!
我该怎么做?
我先使用EF 4.1代码.遇到一种非常奇怪的情况:数据库不存在,代码被执行,并且一旦代码想要对存储库执行查询(使用存储库模式)
MyRepsitory.Get(whereClause)
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
无法打开登录请求的数据库"MyDatabase".登录失败.用户'sa'登录失败.
好!所以我试图找到它是由什么造成的,并做了以下操作:在导致错误的行上设置一个断点,并且一旦该行被命中,我从调试(监视)窗口发出另一个针对存储库的查询
MyRepository.GetAll();
Run Code Online (Sandbox Code Playgroud)
et voila数据库被创建.所以我想:为什么不欺骗数据库(作为解决方法)并针对存储库发出此请求?结果:一旦在代码中执行,我就会得到相同的错误!
我究竟做错了什么?这曾经像魅力一样工作!
编辑 这让我很生气!我将模型和一些代码(用于存储库模式)分离到一个新项目中.试图执行相同的代码,它适用于这个新项目.怎么可能?
查看SQL Serv2008 Exp的日志,我看到以下错误/事件:
启动数据库'MyDatabase'
将数据库选项SINGLE_USER设置为ON以用于数据库MyDatabase.
错误:18456,严重性:14,状态:38.
用户'sa'登录失败.原因:无法打开显式指定的数据库.[客户:]
您将如何设计此场景(使用Entity Framework 4.1,Code First和存储库模式):Visual Studio解决方案包含以下项目
Solution
|-Web Application Project
|-DAL Project
|-Model Project
Run Code Online (Sandbox Code Playgroud)
所以在模型项目中有各种类.假设我们在那里有一个名为User的类,其定义如下(剥离):
public class User{
[Key]
public int UserId { get; set; }
....
//this property has a unique constraint created in a custom DB Initializer class
public string email { get; set; }
....
}
Run Code Online (Sandbox Code Playgroud)
在DAL项目中,驻留存储库方法(Insert,Update等)以及Initializer类:
public class MyDatabaseInitializer : IDatabaseInitializer<MyDatabase>
{
public void InitializeDatabase(MyDatabase context)
{
try
{
if (!context.Database.Exists())
{
context.Database.Create();
context.Database.ExecuteSqlCommand(
"ALTER TABLE Users ADD CONSTRAINT uc_Email UNIQUE(Email)");
}
}
catch (Exception ex)
{ …Run Code Online (Sandbox Code Playgroud) 如何设置SQL Server 2005 DBMS,以便可以使用不同语言存储数据?
我确切的问题是:在SQL Server Management Studio中,我正在编写一个包含德语变音符号的插入语句.文本已成功保存,但读取相同的值会导致文本没有变音符号.
考虑到我必须支持4种语言:英语,德语,希腊语和俄语(我不想想我将用俄语文本面对什么).
DBMS现在设置为希腊语排序规则(以支持希腊语).
这会导致任何问题吗?
任何提示?
我正在使用Entity Framework 4.1和存储库模式(数据库已经存在).我的问题是存在一个名为GROUP的表(保留).这是一个我无法改变的生产数据库.
所以,使用上述所有这些技术我收到以下错误:
"组"是保留关键字,除非被转义,否则不能用作别名.
是否可以告诉实体框架使用以下作为表名:[GROUP]
编辑 具有db上下文的类如下所示(已剥离)
public class AMTDatabase : DbContext
{
private IDbSet<GROUP> _Groups;
public IDbSet<GROUP> Group
{
get { return _Groups ?? (_Groups = DbSet<GROUP>()); }
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<GROUP>().ToTable("GROUP");
}
//etc
}
Run Code Online (Sandbox Code Playgroud)
提前致谢
我很难弄清楚如何将这个简单的SQL语句转换为(c#)linq to SQL:
SELECT table1.vat, SUM(table1.QTY * table2.FLG01 + table1.QTY * table2.FLG04)
FROM table1
inner join table2 on table2.key= table1.key
where '2010-02-01' <= table1.trndate and table1.trndate <= '2010-02-28'
Group by table1.vat
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏
使用MVVM样式我成功地ObservableCollection<string>将a 绑定到a ListBox,将值显示为RadioButtons.控件的行为完全符合预期.
现在我遇到一个TextBox与此相关的问题ListBox:我希望每当SelectedItemin ListBox等于特定值(例如ValueForEnabled)TextBoxes被启用时,否则应该禁用它们.
我知道我必须绑定到SeletedItem的ListBox(命名lbSource),但究竟是做?
我想要这样的东西(伪代码):
<TextBox ...
IsEnabled="{Binding ElementName=lbSource, Path=SelectedItem='ValueForEnabled',
Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
...
/>
Run Code Online (Sandbox Code Playgroud)