在Visual Studio 2010中添加Subsonic 3.0.0.4

时间:2010-08-27 10:53:31

标签: visual-studio-2010 subsonic

我创建了一个专注于C#3.5的控制台应用程序,并添加了对System.Web,System.Configuration和Subsonic.Core的引用。也有配置文件

    <?xml version="1.0"?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="UpdateCotswolds.Properties.Settings.Live_IntegraConnectionString" connectionString="Data Source=POSERVER;Initial Catalog=Live_Integra;Integrated Security=True" providerName="System.Data.SqlClient"/>
    </connectionStrings>
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>

然后我编辑了Settings.ttinclude

const string Namespace = "Integra.Data";
    const string ConnectionStringName = "UpdateCotswolds.Properties.Settings.Live_IntegraConnectionString";

    //This is the name of your database and is used in naming
    //the repository. By default we set it to the connection string name
    const string DatabaseName = "Live_Integra";

并拖入tt文件。

当他们跑步时,我收到错误......

Error   2   Running transformation: System.InvalidOperationException: Sequence contains more than one matching element
   at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at Microsoft.VisualStudio.TextTemplating47D0892A160210D689C6B90986A9AE0D.GeneratedTextTransformation.LoadTables() in c:\Programming\UpdateCotswolds\UpdateCotswolds\SQLServer.ttinclude:line 134
   at Microsoft.VisualStudio.TextTemplating47D0892A160210D689C6B90986A9AE0D.GeneratedTextTransformation.TransformText() in c:\Programming\UpdateCotswolds\UpdateCotswolds\ActiveRecord.tt:line 23
   at Microsoft.VisualStudio.TextTemplating.TransformationRunner.RunTransformation(TemplateProcessingSession session, String source, ITextTemplatingEngineHost host, String& result)

这是有问题的一行......

var pkColumn=tbl.Columns.SingleOrDefault(x=>x.Name.ToLower().Trim()==tbl.PrimaryKey.ToLower().Trim());

我猜我犯了一个愚蠢的错误,希望有人能让我直截了当......

提前致谢...

1 个答案:

答案 0 :(得分:2)

某个表似乎有多个主键?你可以发布你的架构吗? 或者也许你的PK和FK的名字完全一样,SS也会感到困惑。

也许你可以使用字符串[] ExcludeTables = new string [] {};在“Settings.ttinclude”下找到的属性,直到它工作并为该一个表提供架构。