在一个C#项目中,我收到以下警告:
警告CS1762:由于间接引用由程序集"ALibraryOfMine.dll"创建的程序集,因此创建了嵌入式互操作程序集"Interop.SomeLibrary.dll"的引用.考虑更改任一程序集上的"嵌入互操作类型"属性.
但是,在提供此警告的C#项目中,我没有在COM库引用属性上看到Embed Interop Types属性.这是在VS 2010中.在VS 2008 ALibraryOfMine项目中,同一个COM库也没有Embed Interop Types属性.我怎么能摆脱这个警告?我一直在得到"找到的程序集的清单定义与程序集引用不匹配"错误,我担心可能有不同版本的COM库,因此我想消除与COM相关的错误.
我在本地计算机上有一个现有的Git存储库.我想将该存储库移动到我的Web服务器,然后git clone
在我的本地机器上从服务器检出我的存储库.我计划在我的本地计算机上进行开发并将更新推送回服务器.我可以从本地机器ssh到服务器,但反之亦然.我该怎么办呢?我认为应该以某种方式使用git bundle,但是当我尝试git clone
在我的服务器上捆绑时,我得到了一个"警告:远程HEAD指的是不存在的ref,无法检出"错误.我的本地机器正在运行OS X,服务器正在运行Linux.
我使用SQLAlchemy的声明和我有三个型号: Role
,Permission
,和RolePermission
.在我的Role
模型中,我有以下内容:
class Role(Base):
name = Column(u'NAME', VARCHAR(50), nullable=False, unique=True)
permissionLinks = relationship(RolePermission, backref="role", order_by=name)
permissions = relationship(Permission, backref=backref("roles",
order_by=name), secondary=RolePermission.__table__,
order_by=Permission.name)
Run Code Online (Sandbox Code Playgroud)
现在permissions
声明工作正常,与角色关联的权限按照我的预期(按名称)排序.但是,permissionLinks
失败并出现以下错误:
sqlalchemy.exc.ProgrammingError :( ProgrammingError)('42000','[42000] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]无法绑定多部分标识符"ROLES.NAME".(4104)( SQLExecDirectW); [42000] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]语句无法准备.(8180)')u'SELECT [ROLES_PERMISSIONS].[ROLE_ID] AS [ROLES_PERMISSIONS_ROLE_ID],[ROLES_PERMISSIONS ].[PERMISSION_ID] AS [ROLES_PERMISSIONS_PERMISSION_ID],[ROLES_PERMISSIONS].[IS_DENIED] AS [ROLES_PERMISSIONS_IS_DENIED] \nFROM [ROLES_PERMISSIONS] \nWHERHER [ROLES_PERMISSIONS].[ROLE_ID] =?订单[ROLES].[NAME]'(19,)
问题是Role
没有加入,所以它无法排序Role.name
.我尝试过指定primaryjoin=id == RolePermission.id1
,但这似乎没有改变任何东西.如何在此关系上指定连接,以便我可以按其中一个连接表(即Role.name
)中的字段进行排序?
我有一个Test
模型/表和一个TestAuditLog
模型/表,使用SQLAlchemy和SQL Server 2008.两者之间的关系是Test.id == TestAuditLog.entityId
,一个测试有许多审计日志. TestAuditLog
旨在保留Test
表中行的更改历史记录.我想跟踪Test
删除的时间,但是,我遇到了麻烦.在SQL Server Management Studio中,我将FK_TEST_AUDIT_LOG_TEST
关系的" 强制外键约束 "属性设置为"否",认为这将允许TestAuditLog
存在一个entityId
不再连接到任何行的行,Test.id
因为Test
已删除.但是,当我尝试TestAuditLog
使用SQLAlchemy 创建一个然后删除它时Test
,我收到一个错误:
(IntegrityError)('23000',"[23000] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]无法将值NULL插入列'AL_TEST_ID',表'TEST_AUDIT_LOG';列不允许空值.UPDATE失败. (515)(SQLExecDirectW); [01000] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]语句已终止.(3621)")u'UPDATE [TEST_AUDIT_LOG] SET [AL_TEST_ID] =?WHERE [TEST_AUDIT_LOG].[AL_ID] =?' (无,8)
我想是因为之间的外键关系Test
和TestAuditLog
,我删除后Test
列,SQLAlchemy的试图更新所有测试的审计日志有NULL
entityId
.我不希望它这样做; 我希望SQLAlchemy单独保留审计日志.如何告诉SQLAlchemy允许存在entityId
不与任何连接的审计日志Test.id
?
我试图ForeignKey
从我的表中删除,但我仍然可以说myTest.audits
并获得所有测试的审计日志,并且SQLAlchemy抱怨不知道如何加入Test …
我在Web应用程序中使用CherryPy,Mako模板和SQLAlchemy.我来自Ruby on Rails背景,我正在尝试为我的模型设置一些数据验证.我无法找出确保"名称"字段在某个其他字段具有值时具有值的最佳方法.我尝试使用SAValidation,但它允许我创建新行,其中所需列为空,即使我validates_presence_of
在列上使用.我一直在看WTForms,但这似乎涉及很多重复的代码 - 我已经用表中的列设置了我的模型类,为什么我需要再次重复所有这些列只是为了说"嘿这个一个人需要一个价值"?我是从"现身瘦控制器,脂肪模型 "的心态,一直在寻找在我的模型像Rails的类似的方法validates_presence_of
或validates_length_of
.我应该如何验证模型收到的数据,并在验证失败时确保Session.add
/ Session.merge
失败?
是否可以强制我的C#解决方案文件生成包含解决方案中所有项目的单个DLL,而不是每个项目一个DLL? 这个家伙说这是不可能的,但我注意到这是2004年的帖子.我使用的是Visual Studio 2008 Team System,它是一个C#应用程序.
除了yield
在Ruby中使用迭代器之外,我还使用它将控制权简单地传递回调用者,然后在被调用的方法中恢复控制.我想在C#中做的事情是类似的.在测试类中,我想获取一个连接实例,创建另一个使用该连接的变量实例,然后将该变量传递给调用方法,以便可以进行调整.然后,我希望控制返回到被调用的方法,以便可以处理连接.我想我想要像Ruby一样的块/闭包.这是一般的想法:
private static MyThing getThing()
{
using (var connection = new Connection())
{
yield return new MyThing(connection);
}
}
[TestMethod]
public void MyTest1()
{
// call getThing(), use yielded MyThing, control returns to getThing()
// for disposal
}
[TestMethod]
public void MyTest2()
{
// call getThing(), use yielded MyThing, control returns to getThing()
// for disposal
}
...
Run Code Online (Sandbox Code Playgroud)
这在C#中不起作用; ReSharper告诉我,body getThing
不能是迭代器块,因为MyThing
它不是迭代器接口类型.这绝对是正确的,但我不想迭代一些列表.我猜我不应该使用,yield
如果我不使用迭代器.任何想法,我怎样才能实现在C#此块/关闭的事情,所以我没有给缠上了我的代码MyTest1
,MyTest2
......与代码getThing()
的身上?
我有一个带有以下签名的方法:
private PropertyInfo getPropertyForDBField(string dbField, out string prettyName)
Run Code Online (Sandbox Code Playgroud)
在其中,我prettyName
根据给定的值找到相关值dbField
.然后,我想要查找具有该名称的所有属性(如果有)prettyName
,因此我尝试执行以下操作:
IEnumerable<PropertyInfo> matchingProperties =
getLocalProperties().Where(prop =>
prop.Name.Equals(prettyName)
);
Run Code Online (Sandbox Code Playgroud)
但是,这会产生以下错误:
不能在匿名方法,lambda表达式或查询表达式中使用ref或out参数'prettyName'
通过我试图prettyName
在Where
lambda参数中使用的方法中的点,prettyName
肯定是初始化的.我return
如果prettyName
无法初始化为有效值.我可以在这里做一些技巧让我prettyName
在lambda表达式中使用吗?
编辑:如果重要的话,我正在使用.NET 3.5.
我使用Drupal 7编写了一个与Views 3接口的模块,但是当我使用自定义表作为数据源创建视图时,没有数据显示出来.这是MySQL的架构:
+-------------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| title | mediumtext | NO | | NULL | |
| Department | text | NO | | NULL | |
| credits | int(10) | NO | | NULL | |
| description | longtext | NO | | NULL | |
+-------------+------------+------+-----+---------+----------------+
Run Code Online (Sandbox Code Playgroud)
这是my_module.views.inc中的钩子覆盖:
function my_module_views_data() { …
Run Code Online (Sandbox Code Playgroud) 这似乎不应该是困难的,但我现在卡住了.我正在尝试从与给定XPath查询字符串匹配的节点获取特定属性的属性值.这是我到目前为止所拥有的:
public static IEnumerable<string> GetAttributes(this XmlDocument xml,
string xpathQuery, string attributeName)
{
var doc = new XPathDocument(new XmlNodeReader(xml));
XPathNavigator nav = doc.CreateNavigator();
XPathExpression expr = nav.Compile(xpathQuery);
XPathNodeIterator iterator = nav.Select(expr);
while (iterator.MoveNext())
{
XPathNavigator curNav = iterator.Current;
if (curNav.HasAttributes)
{
XmlNode curNode = ((IHasXmlNode)curNav).GetNode();
if (null != curNode)
{
XmlAttribute attrib = curNode.Attributes[attributeName];
if (null != attrib)
{
yield return attrib.Value;
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这目前抛出异常:
System.InvalidCastException:无法将类型为"MS.Internal.Xml.Cache.XPathDocumentNavigator"的对象强制转换为"System.Xml.IHasXmlNode".
我错了吗?是否有更简单的方法从匹配节点获取属性值?
c# ×3
python ×3
sqlalchemy ×3
.net ×2
model ×2
cherrypy ×1
closures ×1
com ×1
command-line ×1
declarative ×1
dll ×1
drupal ×1
drupal-7 ×1
drupal-views ×1
dry ×1
foreign-keys ×1
git ×1
interop ×1
join ×1
lambda ×1
linq ×1
mysql ×1
php ×1
repository ×1
sql ×1
sql-server ×1
validation ×1
warnings ×1
xml ×1
xpath ×1
yield ×1